什么是闭包?简单来说,就是一段可执行的代码块或者函数指针。你不仅可以直接调用一个闭包,也可以将闭包作为参数传递给一个函数。
简单定义一个闭包:
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的负面影响。
分享到:
相关推荐
赠送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...
赠送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...
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文件,MAC使用时需存放在/Users/用户名/.gradle/caches/jars-3/某一缓存目录下,找不到就都看一下,我遇到的问题是缓存目录中下载的是2.4.17版本,应该跟gradle版本升级有关
赠送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包供使用,解决as编译时报错问题
groovy-binary-1.8.6
groovy-all-2.4.8.jar
apache-groovy-sdk-4.0.1下载
groovy-2.3.6-installer windows安装版本
groovy-all-2.1.6.jar groovy-all-2.1.6.jargroovy-all-2.1.6.jar
groovy(10)-闭包委托策略 /*闭包的三个重要变量:this,owner,delegate区别在于:this代表闭包定义处最近的对象(不包含闭包),ow
赠送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
官网下载groovy sdk
赠送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...
赠送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,for somebody who can not download
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