Groovy中each、find跳出循环】的更多相关文章

在groovy中使用break跳出each或者find的循环会会报错,为什么呢?groovy中each.find方法是一个闭包操作,要想跳出循环要使用 return true,但有几个问题有待研究: 1.groovy each 中的return true 相当于Java中的continue , 但不完全是,看一下例子. 2.groovy find中的return true 相当于Java中的break, each例子: def a = [1, 2, 3, 4]a.each { if (it ==…
上一篇:Groovy中那些神奇注解之ToString 写完ToString,本来想今天就写到这了,突然觉得InheritConstructors注解实在也是个神器,写起来也没多少字,还是写了吧. InheritConstructors,从名字看就知道是继承构造函数(这话貌似我每篇都说,不得不说人家名字取得好),不知道大家有没有这样的经历,继承JAVA的Exception的时候,为了能和Exception原本的构造函数对应起来,会写上很多个构造函数,而函数的实现,往往就是super(...),如果…
继续上一篇:Groovy中那些神奇注解之Memoized 这篇就讲讲@groovy.transform.ToString这个注解,这注解太熟悉了,熟悉到让人一看就知道是干吗的,不就是把Bean转在String么? 没错,它就是把Bean转成String,只不过比Java默认的类名加上HashCode可是好太多了,来个例子(Groovy自带了dump()和inspect()方法,也是查看对象的,写在一起做比较了) @groovy.transform.ToString class Book{ def…
临近年关手头比较闲,去看了一下Groovy的官方文档,才发现原来Groovy中带了那么多的注解,很多注解带来的效果,有时候让人感觉“这不是在变魔法吧”. 个人很喜欢Groovy,写不成Ruby,Groovy一样让我很愉悦.可惜在国内Groovy实在没什么人气,连个像样的官方站都没有,或许是因为喜欢脚本的都在写ruby,python,写Java的又对他不屑一顾? 接下来的一系列文章,就只介绍一些我个人觉得很好用,在开发中用到机会会比较多的注解. PS:强烈推荐Groovyr官方文档,相当的详细,地…
groovy中对于正则表达式的书写进行了简化,同时引入了新的操作符,使得正则表达式使用起来比较方便简单. 对于书写的改进: 比如 assert "\\d" == /\d/ 也就是在groovy中/\d/本身也是字符串,我们可以简单地把/看成是字符串中的双引号,因此杠杠中间的内容是不需要进行转义的. groovy中的正则表达式的核心部分依然采用的是JAVA中的类,Pattern.Matcher等,不过groovy为了简化正则的使用,引入了三个操作符: 查找(find)操作符:=~ 匹配(…
Closures(闭包) 本节主要讲groovy中的一个核心语法:closurs,也叫闭包.闭包在groovy中是一个处于代码上下文中的开放的,匿名代码块.它可以访问到其外部的变量或方法. 1. 句法 1.1 定义一个闭包 { [closureParameters -> ] statements } 其中[]内是可选的闭包参数,可省略.当闭包带有参数,就需要->来将参数和闭包体相分离. 下面看一些闭包的具体例子: { item++ } { -> item++ } { println it…
Groovy中的面向对象 前面说到groovy支持脚本和类,前面一节已将简单说了脚本和类之间的关系,这一节主要介绍一下groovy中类的相关知识,即面向对象相关知识. 1.类型 1.1 原始类型 groovy中支持的原始数据类型与java相同,分别是boolean,char,short,int,long,float,double. 1.2 类 groovy中的类与java中很相似,但有以下几点是groovy特有的: public修饰的字段会被自动转换成属性变量,这样可以避免很多冗余的get和se…
知识点是Groovy中的模板引擎 GStringTemplateEngine 第一个例子: def binding = [ firstname : "Grace", lastname : "Hopper", accepted : true, title : 'Groovy for COBOL programmers' ] def engine = new groovy.text.GStringTemplateEngine() def text = '''\ Dear…
包名 当你在groovy中定义类的时候需要指定包名,这和java中类似不多介绍. 导入 groovy中的导入也跟java类似,有一下五种: 默认导入 groovy默认导入了一下几个包和类: import java.lang.* import java.util.* import java.io.* import java.net.* import groovy.lang.* import groovy.util.* import java.math.BigInteger import java.…
1. forEach() forEach() 方法从头至尾遍历数组,为每个元素调用指定的函数.如上所述,传递的函数作为forEach()的第一个参数.然后forEach()使用三个参数调用该 函数:数组元素.元素的索引和数组本身.如果只关心数组元素的值,可以编写只有一个参数的函数——额外的参数将忽略: var data = [1,2,3,4,5]; //要求和的数组 // 计算数组元素的和值 var sum = 0; // 初始为0 data.forEach(function(value){ s…