`
ceci.lia
  • 浏览: 144343 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Groovy流水账-闭包

 
阅读更多
什么是闭包?简单来说,就是一段可执行的代码块或者函数指针。你不仅可以直接调用一个闭包,也可以将闭包作为参数传递给一个函数。

简单定义一个闭包:
def greetings = {println “Hello,${it}”}

注意,这边的it是闭包默认的参数,也就是当你的闭包只有一个参数时。你可以直接调用闭包:
greetings("Circle.");

当然,你如果不想使用提供it参数,你也可以指定自己的参数:
def greetings = {param -> println "hello, ${param}"}


如果将闭包作为最后一个参数传递给一个方法,你可以使用一种优雅的方式来调用该方法,例如:
def someMethod(param1, closure){
  //code blocks
}
你就可以采用someMethod("dd"){print "${it}"}的方式来调用闭包。

Groovy闭包的三个重要的内置对象:this,owner,delegate。一般情况下,delegate指向owner的值,可以通过设置delegate值来获取groovy的元编程能力。
this对象永远指向最外层的对象,owner对象指向包含当前闭包的对象,delegate一般指向owner对象。对于delegate指向要慎用,如果该闭包会在其他地方被使用,需要注意delegate的负面影响。


分享到:
评论

相关推荐

    groovy-3.0.9-API文档-中英对照版.zip

    赠送jar包:groovy-3.0.9.jar; 赠送原API文档:groovy-3.0.9-javadoc.jar; 赠送源代码:groovy-3.0.9-sources.jar; 赠送Maven依赖信息文件:groovy-3.0.9.pom; 包含翻译后的API文档:groovy-3.0.9-javadoc-API...

    groovy-all-2.4.5-API文档-中英对照版.zip

    赠送jar包:groovy-all-2.4.5.jar; 赠送原API文档:groovy-all-2.4.5-javadoc.jar; 赠送源代码:groovy-all-2.4.5-sources.jar; 赠送Maven依赖信息文件:groovy-all-2.4.5.pom; 包含翻译后的API文档:groovy-all...

    groovy-all-2.4.13-API文档-中文版.zip

    赠送jar包:groovy-all-2.4.13.jar; 赠送原API文档:groovy-all-2.4.13-javadoc.jar; 赠送源代码:groovy-all-2.4.13-sources.jar; 赠送Maven依赖信息文件:groovy-all-2.4.13.pom; 包含翻译后的API文档:groovy...

    groovy-all-2.4.15.jar

    org.gradle.api.resources.ResourceException: Could not get resource '...下载groovy-all-2.4.15.jar后,放入对应的 android-studio/gradle/gradle-5.*/lib/目录。 重启 Android Studio 及可使用。

    groovy-all-2.4.5-API文档-中文版.zip

    赠送jar包:groovy-all-2.4.5.jar; 赠送原API文档:groovy-all-2.4.5-javadoc.jar; 赠送源代码:groovy-all-2.4.5-sources.jar; 赠送Maven依赖信息文件:groovy-all-2.4.5.pom; 包含翻译后的API文档:groovy-all...

    groovy-3.0.9-API文档-中文版.zip

    赠送jar包:groovy-3.0.9.jar; 赠送原API文档:groovy-3.0.9-javadoc.jar; 赠送源代码:groovy-3.0.9-sources.jar; 赠送Maven依赖信息文件:groovy-3.0.9.pom; 包含翻译后的API文档:groovy-3.0.9-javadoc-API...

    groovy-all-2.4.15.jar.zip

    groovy-all-2.4.15.jar文件,MAC使用时需存放在/Users/用户名/.gradle/caches/jars-3/某一缓存目录下,找不到就都看一下,我遇到的问题是缓存目录中下载的是2.4.17版本,应该跟gradle版本升级有关

    groovy-all-2.4.12.jar

    最近的groovy-all-2.4.12.jar包供使用,解决as编译时报错问题

    groovy-binary-1.8.6

    "groovy-binary-1.8.6" 是Groovy的一个特定版本,其版本号表明这是1.8系列中的第六次更新。 Groovy的特性包括: 1. **简洁的语法**:Groovy的语法比Java更为简洁,例如,它可以省略括号、分号和类型声明,使代码更...

    groovy-2.5.1-API文档-中英对照版.zip

    赠送jar包:groovy-2.5.1.jar; 赠送原API文档:groovy-2.5.1-javadoc.jar; 赠送源代码:groovy-2.5.1-sources.jar; 赠送Maven依赖信息文件:groovy-2.5.1.pom; 包含翻译后的API文档:groovy-2.5.1-javadoc-API...

    groovy-all-2.4.8.jar

    - `groovy-all-2.4.8.jar` 是一个集合包,包含了Groovy运行时所需的所有类库,包括Groovy的核心库、标准库、编译器和其他相关模块。 - 这个jar包使得开发者可以在Java项目中方便地引入Groovy,无需单独管理各个...

    groovy-2.3.6-installer

    在"groovy-2.3.6-installer"这个版本中,我们聚焦于Windows操作系统上的安装过程。 Groovy 2.3.6是该语言的一个稳定版本,发布于2014年,它提供了许多改进和新特性。对于开发者来说,选择特定版本可能是因为它满足...

    apache-groovy-sdk-4.0.1下载

    1. **groovy-all.jar**:这是一个包含了Groovy库所有模块的集合,你可以通过引入这个单一的jar文件来快速地在项目中使用Groovy。 2. **bin**目录:包含了一系列可执行脚本,如`groovy`, `groovyc`, 和 `groovysh`,...

    apache-groovy-sdk-3.0.6.zip

    1. **Groovy编译器**:SDK中的`groovy-3.0.6`目录可能包含了Groovy编译器,它是将Groovy源代码转换成Java字节码的工具,使得Groovy程序能够在Java平台上运行。 2. **GroovyShell和GroovyConsole**:这两个工具允许...

    groovy-all-2.1.6.jar

    groovy-all-2.1.6.jar groovy-all-2.1.6.jargroovy-all-2.1.6.jar

    groovy-2.5.1-API文档-中文版.zip

    赠送jar包:groovy-2.5.1.jar; 赠送原API文档:groovy-2.5.1-javadoc.jar; 赠送源代码:groovy-2.5.1-sources.jar; 赠送Maven依赖信息文件:groovy-2.5.1.pom; 包含翻译后的API文档:groovy-2.5.1-javadoc-API...

    apache-groovy-sdk-2.5.6.zip

    在下载并解压"apache-groovy-sdk-2.5.6.zip"后,开发者可以找到`groovy-2.5.6`目录,其中包含了Groovy的JAR文件、文档、源代码以及用于构建和运行Groovy程序的工具。通过这个SDK,开发者可以开始学习和使用Groovy,...

    idea-grails-toolls整包jar资源

    groovy-2.4.5jar groovy-ant-2.4.5.jar groovy-bsf-2.4.5jar groovy-console-2.4.5.jar groovy-docgenerator-2.4.5.jar groovy-groovydoc-2.4.5.jar groovy-groovysh-2.4.5.jar groovy-jmx-2.4.5.jar groovy-json-...

    groovy-sdk-4.0.3

    6. **jar文件**:如`groovy-4.0.3.jar`等,这些是SDK的核心库,包含Groovy运行时所需的类和接口。 7. **依赖库**:Groovy可能依赖于其他Java库,如Ant、JUnit等,这些依赖项通常也会包含在SDK中。 使用Groovy SDK...

    groovy-all-2.4.7.jar

    groovy-all-2.4.7.jar

Global site tag (gtag.js) - Google Analytics