Gradle基础知识——Groovy的闭包

版权声明:本文为博主 [小明同学爱思考] 原创文章,转载请注明出处。 https://blog.csdn.net/sinat_22840937/article/details/78267980

点击图片领取阿里云云产品幸运券

  • 定义闭包
def closure_name = {
    // closure body
}

上面代码定义一个名为 closure_name 的闭包,用途由 closure body 中的代码定义。匿名闭包指不声明闭包变量名,只有闭包方法体{ //closure body }

  • 无参闭包
def closure_with_no_param = {
    println 'hello,world!'
}

执行closure_with_no_param()或者closure_with_no_param.call(),将输出hello,world!

  • 含参闭包
def closure_with_param = {
    x,y-> println "x plus y is " + (x+y)
}

执行closure_with_param(1,2),结果为x plus y is 3!

可以设置默认参数值,例如:

def closure_with_param = {
    x,y=0-> println "x plus y is " + (x+y)
}

执行closure_with_param(1),结果为x plus y is 1!

  • 与方法/函数的结合使用

定义闭包

def closure_demo = {
    x -> println x
}

定义方法

def method_name(Closure closure_name){
    for(int i=0;i<=100;i+=1){
        closure_name(i)
    }
}

执行method_name(closure_demo)或者method_name closure_demo,结果输出如下:

1
2
3
...
100
  • Gradle构建脚本简析
dependencies {
    compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
    testCompile group: 'junit', name: 'junit', version: '4.+'
}

其中:

  • dependencies为方法或函数名,参数为闭包类型
  • 接下来的{...}是一个闭包
//这是个闭包
{
    compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
    testCompile group: 'junit', name: 'junit', version: '4.+'
}
  • group: 'commons-collections'group变量的值设为commons-collections
  • compile为方法/函数

参考文献


点击图片领取阿里云云产品幸运券

展开阅读全文

没有更多推荐了,返回首页