`

Groovy的闭包示例

阅读更多
  1.  源代码:
  2. package mars.groovy
  3. /**
  4.  * @author Eric Han
  5.  * 2008-9-3 11:58:28
  6.  */
  7. public class MyClosure{
  8.  public static void main(def args){
  9.   def myfirstClosure={man->println "Hello ${man}"}
  10.   
  11.   myfirstClosure.call('Eric')
  12.   myfirstClosure('Carry')
  13.   
  14.   println ''
  15.   def map=['Eric':30,'bobo':29,'Carry':25]
  16.   map.each{println "${it.key} age is: ${it.value}"}
  17.   
  18.   println ''
  19.   map.findAll{age->age.value>28}.each{println it}
  20.   
  21.   println ''
  22.   def isAnyOneTrue=[11,12,13,14].any{n->n>12}
  23.   def isEveryOneTrue=[11,12,13,14].any{n->n>10}
  24.   println "any one is true? ${isAnyOneTrue}"
  25.   println "every one is true? ${isEveryOneTrue}"
  26.    
  27.   def result
  28.   println ''
  29.   def list=[1,2,3,4,5]
  30.   result=list.collect{n->return n*n}
  31.   println "collect result:${result}"
  32.   
  33.   println ''
  34.   def list1=[1,2,3,4,5]
  35.   result=list1.inject(1){previousValue,currentValue->previousValue*currentValue}
  36.   println "inject result:${result}"
  37.  }
  38. }
  39. 输出:
  40. Hello Eric
  41. Hello Carry
  42. Eric age is: 30
  43. bobo age is: 29
  44. Carry age is: 25
  45. bobo=29
  46. Eric=30
  47. any one is truetrue
  48. every one is truetrue
  49. collect result:[1, 4, 9, 16, 25]
  50. inject result:120
分享到:
评论

相关推荐

    groovy的简单例子

    下面是一个简单的闭包示例: ```groovy def multiplier = { num -> num * 2 } println(multiplier(5)) // 输出: 10 ``` 4. **GString(GStrings)**:这是Groovy特有的字符串,其中可以包含表达式。表达式会...

    Groovy安装以及简单使用

    在压缩包文件`GroovyDemo`中,可能包含了各种Groovy脚本示例,如上述的Hello World程序或者使用闭包的示例。通过查看这些示例,读者可以更直观地理解Groovy的语法和特性,并动手实践,从而更好地掌握Groovy的使用。 ...

    groovy入门经典,groovyeclipse 插件

    Groovy是一种动态、灵活的编程语言,它是Java平台上的一个扩展,可以无缝集成到Java项目中。...通过阅读《Groovy经典入门》这本书和实践其中的示例,你可以快速掌握Groovy语言并开始利用其强大的功能。

    groovy经典_资料

    2. **闭包(Closures)**:闭包是Groovy的一个强大特性,它是一种匿名函数,可以捕获其所在上下文的变量,常用于函数式编程和数据处理。 3. **领域规范语言(DSLs)**:Groovy可以方便地构建DSL,使得特定领域的...

    groovy-demo-java-for-refactor:在演示期间用于重构为Groovy的示例Java代码

    例如,Groovy的闭包(Closure)可以简化迭代和回调函数的编写,而Java则需要使用匿名内部类来实现类似功能。 3. **重构过程** 项目中的Java代码是经过精心选择的,涵盖了常见的类、方法和控制结构,如循环、条件...

    Groovy vs_ JRuby Presentation.ppt

    Groovy代码示例展示了如何通过更少的代码实现相同的功能,例如在过滤字符串列表的示例中,Groovy使用了更直观的闭包语法,使得代码更为紧凑。 JRuby则是Ruby语言在Java平台上的实现,它完全兼容Ruby语法,为Java...

    groovy速查手册

    - **函数与方法**:支持定义函数和方法,包括闭包的使用,闭包是Groovy的一个强大特性,它允许创建可传递的匿名函数。 - **异常处理**:提供异常处理机制,如`try-catch-finally`块。 #### 四、运算符 Groovy支持...

    groovy基础教程源码,很全面

    文件`Groovy_Workspace`可能包含了各种Groovy代码示例,展示了语言的不同用法;而`Gradle_workspace`可能包含了使用Groovy编写的Gradle构建脚本,展现了Groovy在构建自动化中的应用。通过研究这些源码,你可以深入...

    groovy

    3. 支持闭包:Groovy中的闭包类似于函数引用,可作为参数传递,有助于实现函数式编程风格。 4. GString:类似于Java的字符串,但支持占位符表达式,使字符串操作更便捷。 5. 链式调用:对象属性和方法可以连续调用,...

    groovy包及相关学习资料

    - 另外,压缩包可能还包含了一些示例代码、教程或者Groovy的特定使用案例,这对于学习和理解Groovy的实际应用非常有帮助。 通过深入学习和实践Groovy,开发者可以提升开发效率,利用其灵活性和强大功能来解决各种...

    groovy+in+action

    通过丰富的示例代码和深入浅出的讲解,读者可以全面掌握Groovy的核心概念和最佳实践。 #### 二、Groovy简介 Groovy是一种面向对象的动态编程语言,它运行在Java平台上,兼容Java语法并提供了一些增强特性,如闭包...

    groovy-api-chm

    Groovy是一种基于Java平台...Groovy API CHM文件通常包含以上所有概念的详细说明,包括每个类、接口、方法的签名、参数、返回值以及示例代码。对于开发者来说,深入学习这个文档将极大地提升对Groovy的理解和使用能力。

    groovy用户指南--中文版

    - 异常处理和资源关闭变得更简单,具体应用如`GroovySQL`中的示例。 **闭包与匿名内类的区别:** - 闭包支持真正的状态传递,能够在外部访问和修改局部变量。 - 闭包中创建的变量对外部可见,允许更灵活的数据交互...

    apache-groovy-sdk-2.5.8.zip

    2. **docs** 目录:存放Groovy的API文档和用户指南,提供了详细的语言参考和示例,对学习和使用Groovy很有帮助。 3. **lib** 目录:包含了Groovy运行时所需的JAR文件,包括Groovy核心库、标准库以及与其他库(如Ant...

    groovy grails简介

    "技术文章-Groovy和Grails简介.files"可能包含的是与文章相关的资源,如图片、示例代码片段或者样式文件,这些文件可以帮助读者更好地理解文章内容,例如查看Groovy代码示例或Grails项目的目录结构。 总之,Groovy...

    groovy-spark-sample:使用 Groovy 的 Spark 示例应用程序

    此外,Groovy支持闭包和动态类型,这使得它在编写脚本和构建DSL(领域特定语言)时特别有用。 接下来,我们转向Apache Spark。Spark的核心是弹性分布式数据集(RDD),这是一种容错的、可并行操作的数据结构。Spark...

Global site tag (gtag.js) - Google Analytics