知识大全 在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

相关参考

知识大全 PHP 5.3闭包语法初探

PHP5.3闭包语法初探  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  PHP将加入闭包语法也就

知识大全 Java中的闭包与回调

Java中的闭包与回调  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  闭包是一个可调用的对象它记

知识大全 在ASP中访问和更新Cookies集合

在ASP中访问和更新Cookies集合  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishixi

知识大全 闭包会简化Java吗

闭包会简化Java吗  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  WillClosuresMa

知识大全 js实现拖拽 闭包函数详细介绍

  js拖拽  采用简单的闭包实现方式  代码如下:  /**  *CreatedwithJetBrainsWebStorm  *User:lsj  *Date:  *Time:下午:  *Tocha

知识大全 浅谈C#闭包的相关原理

浅谈C#闭包的相关原理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  首先想说明一点虽然有这样那

知识大全 javascript闭包的高级使用方法实例

这篇文章介绍了javascript闭包的高级使用方法实例有需要的朋友可以参考一下   扩展Code:复制代码代码如下:varblogModule=(function(my) myA

知识大全 JavaScript自执行闭包的小例子

JavaScript自执行闭包的小例子  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!JQuery是

知识大全 使用闭包对setTimeout进行简单封装避免出错

使用闭包对setTimeout进行简单封装避免出错  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 JavaScript的模块化:封装(闭包),继承(原型) 介绍

JavaScript的模块化:封装(闭包),继承(原型)介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看