`
ceci.lia
  • 浏览: 142248 次
  • 性别: 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-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.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.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.15.jar.zip

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

    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.12.jar

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

    groovy-binary-1.8.6

    groovy-binary-1.8.6

    groovy-all-2.4.8.jar

    groovy-all-2.4.8.jar

    apache-groovy-sdk-4.0.1下载

    apache-groovy-sdk-4.0.1下载

    groovy-2.3.6-installer

    groovy-2.3.6-installer windows安装版本

    groovy-all-2.1.6.jar

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

    groovy(10)-闭包委托策略1

    groovy(10)-闭包委托策略 /*闭包的三个重要变量:this,owner,delegate区别在于:this代表闭包定义处最近的对象(不包含闭包),ow

    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...

    apache-groovy-sdk-2.5.2.zip

    apache-groovy-sdk-2.5.2.zip apache-groovy-sdk-2.5.2.zip

    apache-groovy-sdk-3.0.6.zip

    官网下载groovy sdk

    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-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.4.4

    apache-groovy-sdk-2.4.4,for somebody who can not download

    最新版Groovy -binary-1.7.4.zip

    groovy-binary-1.7.4.zip groovy-binary-1.7.4.zipgroovy-binary-1.7.4.zipgroovy-binary-1.7.4.zipgroovy-binary-1.7.4.zipgroovy-binary-1.7.4.zipgroovy-binary-1.7.4.zip

    groovy-all-2.4.7.jar

    groovy-all-2.4.7.jar

Global site tag (gtag.js) - Google Analytics