【Groovy】闭包 Closure ( 闭包作为函数参数 | 代码示例 )

简介: 【Groovy】闭包 Closure ( 闭包作为函数参数 | 代码示例 )

文章目录

一、闭包作为函数参数

二、闭包作为函数参数代码示例





一、闭包作为函数参数


声明一个 fun 函数 , 可以 将参数声明为 Closure<?> 闭包类型 , 在该函数中 , 执行闭包内容 ;


声明函数 :


/**
 * 定义一个方法 , 接收闭包作为参数 , 在方法中执行闭包内容
 * @param closure
 * @return
 */
def fun(Closure<?> closure) {
    closure()
}


调用上述函数时 , 只需要 将 闭包 当做 参数 传递到函数中 即可 :


 

fun ({
        println "Closure 1"
    })


如果 闭包是函数的最后一个参数 , 可以 省略括号 , 将闭包写在函数后面 :


fun {
        println "Closure 2"
    }






二、闭包作为函数参数代码示例


完整代码示例 :


/**
 * 定义一个方法 , 接收闭包作为参数 , 在方法中执行闭包内容
 * @param closure
 * @return
 */
def fun(Closure<?> closure) {
    closure()
}
static void main(String[] args) {
    fun ({
        println "Closure 1"
    })
    fun {
        println "Closure 2"
    }
}



执行结果 :


Closure 1
Closure 2

image.png

目录
相关文章
|
6月前
|
缓存 JavaScript 前端开发
|
Python
闭包(Closure)
闭包(Closure)
72 0
【Groovy】闭包 Closure ( 闭包调用 | 闭包默认参数 it | 代码示例 )
【Groovy】闭包 Closure ( 闭包调用 | 闭包默认参数 it | 代码示例 )
157 0
【Groovy】闭包 Closure ( 闭包调用 | 闭包默认参数 it | 代码示例 )
|
机器学习/深度学习
【Groovy】闭包 Closure ( 闭包参数绑定 | curry 函数 | rcurry 函数 | ncurry 函数 | 代码示例 )(二)
【Groovy】闭包 Closure ( 闭包参数绑定 | curry 函数 | rcurry 函数 | ncurry 函数 | 代码示例 )(二)
125 0
【Groovy】闭包 Closure ( 闭包参数绑定 | curry 函数 | rcurry 函数 | ncurry 函数 | 代码示例 )(二)
【Groovy】闭包 Closure ( 闭包定义 | 闭包类型 | 查看编译后的字节码文件中的闭包类型变量 )
【Groovy】闭包 Closure ( 闭包定义 | 闭包类型 | 查看编译后的字节码文件中的闭包类型变量 )
148 0
【Groovy】闭包 Closure ( 闭包定义 | 闭包类型 | 查看编译后的字节码文件中的闭包类型变量 )
【Groovy】闭包 Closure ( 闭包类 Closure 简介 | 闭包 parameterTypes 和 maximumNumberOfParameters 成员用法 )
【Groovy】闭包 Closure ( 闭包类 Closure 简介 | 闭包 parameterTypes 和 maximumNumberOfParameters 成员用法 )
116 0
【Groovy】闭包 Closure ( 闭包类 Closure 简介 | 闭包 parameterTypes 和 maximumNumberOfParameters 成员用法 )
【Groovy】闭包 Closure ( 闭包类 Closure 简介 | this、owner、delegate 成员区别 | 静态闭包变量 | 闭包中定义闭包 )(二)
【Groovy】闭包 Closure ( 闭包类 Closure 简介 | this、owner、delegate 成员区别 | 静态闭包变量 | 闭包中定义闭包 )(二)
161 0
【Groovy】闭包 Closure ( 闭包类 Closure 简介 | this、owner、delegate 成员区别 | 静态闭包变量 | 闭包中定义闭包 )(二)
|
Swift
闭包(特殊的函数)
闭包(特殊的函数)
121 0
|
JavaScript 前端开发 Java
Lambda表达式和闭包Closure
Lambda表达式和闭包Closure
|
机器学习/深度学习
【Groovy】闭包 Closure ( 闭包参数绑定 | curry 函数 | rcurry 函数 | ncurry 函数 | 代码示例 )(一)
【Groovy】闭包 Closure ( 闭包参数绑定 | curry 函数 | rcurry 函数 | ncurry 函数 | 代码示例 )(一)
161 0