知识大全 在Groovy1.0中使用闭包和集合
Posted 项目
篇首语:人生何适不艰难,赖是胸中万斛宽。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在Groovy1.0中使用闭包和集合相关的知识,希望对你有一定的参考价值。
在Groovy1.0中使用闭包和集合 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
闭包
闭包是很多动态语言提供的一个很方便的功能 它有点像Java中的内部类 不同的是闭包中只有一个方法 但这个方法可以有任意个参数
java 代码
def closure = param > println( hello $param ) closure call( world! )
这段代码会输出 hello world
闭包用 括起 > 前面是参数 后面是处理语句 可以使用call调用 也可以在 后直接使用 () 来执行
闭包可以有多个参数 各个参数用 隔开 如果只有一个参数的话可以省略不写 可以使用关键字 it 来代表
我们可以把上面的例子像下面这样写
java 代码
closure = println( hello $it ) ( world )
或者
java 代码
closure = param param > println(param +param ) ( hello world )
上面的几种写法都会输出 hello world
集合
( )List
java 代码
def list = [ hello new java util Date()] assert list size() == assert list[ ]== assert list get( ) == hello
( )Map
java 代码
def map = [ name : James location : London ] assert map size() == assert map get( name ) == James assert map[ location ]== London
( )循环
java 代码
def list = [ ] for (i in list) print i println() list eachitem > print item println() [ name : yanhua addr : beijing ] eachprintln it [ name : yanhua addr : beijing ] eachkey value >println $key ^_^ $value
上面的运行的结果如下
name=yanhua
addr=beijing
name ^_^ yanhua
addr ^_^ beijing
( )collect
遍历集合 逐个传递给闭包 处理后的结果返回给对应的项
java 代码
def value = [ llect it * assert value == [ ]
( )find
根据闭包断言 返回集合中找到的第一个项目
java 代码
def value = [ ] find it >
assert value ==
( )findAll
根据闭包断言 返回集合中所有找到的项目
java 代码
def value = [ ] findAll it >
assert value == [ ]
( )inject
遍历集合 第一次将传递的值和集合项目传给闭包 将处理结果作为传递的值 和下一个集合项目传给闭包 依此类推
java 代码
def value = [ ] inject( counting: ) str item > str + item assert value == counting: value = [ ] inject( ) count item > count + item assert value ==
( )every
如果集合中所有项目都匹配闭包断言 就返回true 否则返回false
java 代码
def value = [ ] every it < assert value value = [ ] every item > item < assert ! value
( )any
如果集合中任何项目匹配闭包断言 就返回true 否则返回false
java 代码
def value = [ ] any it > assert value value = [ ] any item > item > assert value == false
( )min/max
返回集合中的最小/最大项目(对象必须可比较)
java 代码
def value = [ ] max() assert value == value = [ ] min() assert value == value = [ x y a z ] min() assert value == a
( )join
连接集合中的值成一个字符串
java 代码
cha138/Article/program/Java/hx/201311/26029相关参考
PHP5.3闭包语法初探 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! PHP将加入闭包语法也就
Java中的闭包与回调 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 闭包是一个可调用的对象它记
在ASP中访问和更新Cookies集合 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishixi
闭包会简化Java吗 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! WillClosuresMa
js拖拽 采用简单的闭包实现方式 代码如下: /** *CreatedwithJetBrainsWebStorm *User:lsj *Date: *Time:下午: *Tocha
浅谈C#闭包的相关原理 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 首先想说明一点虽然有这样那
这篇文章介绍了javascript闭包的高级使用方法实例有需要的朋友可以参考一下 扩展Code:复制代码代码如下:varblogModule=(function(my) myA
JavaScript自执行闭包的小例子 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!JQuery是
知识大全 使用闭包对setTimeout进行简单封装避免出错
使用闭包对setTimeout进行简单封装避免出错 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 JavaScript的模块化:封装(闭包),继承(原型) 介绍
JavaScript的模块化:封装(闭包),继承(原型)介绍 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看