简单的声明方式,闭包作为参数传递给方法
def log = ''
(1..3).each{element -> log += element}
assert log == '123'
log = ''
(1..3).each{log += it}
assert log == '123'
花括号可以用来构建一个闭包对象或者是groovy代码块
//赋值给变量
def test = {line -> println line}
//作为方法的返回值
def Closure getTest() {
return {element -> println element}
}
闭包对象赋值给变量,然后被方法调用
def map = ['a': 1, 'b': 2]
def doub = {key, value -> map[key] = value*2}
map.each(doub)
assert map == ['a': 2, 'b': 4]
引用方法作为闭包
def map = ['a': 1, 'b': 2]
def closureTest(entry) {
map[entry.key] = entry.value * 2
}
def closure = this.&closureTest
map.each(closure)
assert map == ['a':2, 'b':4]
本文详细介绍了如何使用闭包作为参数传递给方法,在Groovy中构建闭包对象及代码块的应用,包括闭包赋值给变量、引用方法作为闭包等场景,并通过实例展示了闭包在实际编程中的强大功能。
574

被折叠的 条评论
为什么被折叠?



