为什么80%的码农都做不了架构师?>>>   

坑1:each闭包return陷阱

因为each使用闭包进行循环,所以在闭包中return相当于跳出了本次循环中的闭包,并不会终止循环。所以在each闭包中的return与for循环中的continue类似

class TestEach {def static list = [1,2,3,4,5]static main(args){
//  1
//  2
//  3
//  4
//  5list.each {println itreturn}//  ------------------------------println '-'*30//  1for(int i=0;i<list.size();i++){println list[i]return}}
}

坑2:Map存值方式陷阱

如下面代码所示:map前两种赋值方式,都有问题。但是第二种方式保存的map输出是正常的,取值的时候却取不到。

打印key的class类型发现是GString,用String去取值就会取不到了。

class TestMap {def static map1 = [:]def static map2 = [:]def static map3 = [:]def static map4 = [:]def static map5 = [:]static main(args){String val = 'a'//Errormap1 << [val:'b']//Errormap2 << ["$val":'b']map3["$val"] = 'b'map4[val] = 'b'map5."$val" = 'b'//[val:b]println map1//[a:b]println map2//[a:b]println map3//[a:b]println map4//[a:b]println map5println '-'*30//nullprintln map1['a']//nullprintln map2['a']//bprintln map3['a']//bprintln map4['a']//bprintln map5['a']map2.each {k,v->//class org.codehaus.groovy.runtime.GStringImplprintln k.class}}
}

转载于:https://my.oschina.net/morven/blog/374500

Groovy的一些坑相关推荐

  1. groovy 和 java的区别_Groovy和JAVA的区别

    这段时间还是比较忙的博客也很久没写了 服务器也到期了一直没续费emmm 由于现在在写groovy的代码 所以这篇简单写点groovy相关的 1.Groovy和JAVA的区别 在Groovy中,将在运行 ...

  2. groovy使用范型的坑

    java的范型 Map<String, Integer> map = new HashMap<>(); map.put("a", 100); map.put ...

  3. Groovy与Java集成常见的坑--转

    https://yq.aliyun.com/articles/2357 groovy特性 Groovy是一门基于JVM的动态语言,同时也是一门面向对象的语言,语法上和Java非常相似.它结合了Pyth ...

  4. Groovy与Java集成常见的坑

    groovy特性 Groovy是一门基于JVM的动态语言,同时也是一门面向对象的语言,语法上和Java非常相似.它结合了Python.Ruby和Smalltalk的许多强大的特性,Groovy 代码能 ...

  5. Android热补丁之Robust(三)坑和解

    在前两篇文章中,分析了 Android 热补丁框架 Robust 中,几个重要的流程包括: 补丁加载过程 基础包插桩过程 补丁包自动化生成过程 本篇文章主要分析下集成过程中遇到的坑以及分析问题的思路和 ...

  6. [Android]用架构师角度看插件化(3)-Replugin 需要占坑跳转?

    一.占坑 什么是占坑?为什么要占坑? Android插件化中,从一个插件Activity跳转到不同插件的Activity的时候,是否可以能正常跳转成功? 声明Activity需要配置什么? 声明Act ...

  7. mongodb 输出数组字段_JMeter之Groovy对MongoDB操作

    背景 使用Jmeter做接口测试时需要初始数据,需要连接数据库,然而我们的后端使用的是MongoDB. 操作步骤 2.1 导入将连接MongoDB 所涉及的jar包导入jmeter的扩展lib1)扩展 ...

  8. gitea 手动编译过程,以及踩坑记录

    gitea 手动编译过程,以及踩坑记录 一: 环境介绍 二:下载源码 三:编译安装go 环境 3.1 修改源为阿里 3.2 添加执行权限 3.2 添加环境变量 四:安装nodejs 4.1 添加源 4 ...

  9. groovy基本语法及在项目中使用

    一.前言 由于业务系统用到了 Groovy 语言,本次分享就当对groovy 语言做一个简单总结,主要内容参考于官方文档(Groovy 的官方文档还是非常不错的,强烈推荐阅读),希望对 Groovy ...

最新文章

  1. 几何分布的期望和方差
  2. Linux系统Vi/Vim编辑器的简单介绍、安装/卸载、常用命令
  3. 笔记-中项案例题-2017年上-风险管理
  4. [控件] TranformFadeView
  5. ROS-kinetic 机器语音 之科大讯飞SDK
  6. linux中Shell历史命令记录文件的路径是什么
  7. DOS 网络命令之 netstat
  8. 中国广告营销行业资本报告2020
  9. 乒乓球比赛 两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比 请编程序找出三队赛手的名单。
  10. 阿里java开发编程规范
  11. 大牛解密阿里云直播技术平台
  12. HTTP学习(3)--解析报文
  13. 23种设计模式用英语如何表达?
  14. 程序猿头头(object与数组的简单应用)
  15. 计算机位置不可用d 桌面,win10系统开机提示desktop不可用位置如何解决
  16. 六年工作经验总结分享,希望可以帮到你
  17. 银河麒麟V10 远程桌面
  18. Oracle中以insert values的形式同时插入多条记录
  19. 基于Java的飞机大战的课程设计与实现
  20. 新媒体运营:23种免费获取流量的运营套路 ,你知道几种? 黎想

热门文章

  1. 六大视频网站播放清晰度比较
  2. 3D陶瓷模型如何从创建到精准贴图,完整教程来了!
  3. PTA 习题6.2 写字母* (10分)
  4. 创业公司,如何定位品牌,进行品牌营销?
  5. matlab生成西门子plc源文件,西门子PLC把DB快做成源文件步骤
  6. 思维导图学习2——思维导图的用途
  7. SYD8821低功耗
  8. Excel基础—文件菜单之设置信息
  9. Python解题 - CSDN周赛第23期 - 树形背包与优化
  10. 突发!华为某BG总裁猝死!执掌最大营收业务,东南大学毕业,在职已超26年