Groovy闭包与GeeTwitter DSL实践
1. Groovy闭包基础
闭包是Groovy中强大的特性,在很多场景下都能发挥重要作用。下面我们来详细了解闭包的返回值、作用域等关键概念。
1.1 闭包返回值
闭包声明语法中没有定义返回值的方式,但每次调用闭包都会返回一个值。闭包可以有显式的返回语句,如果遇到返回语句,则返回该语句中定义的值;否则,执行到闭包块中的最后一条语句并返回其结果。如果最后一条语句没有值,则闭包返回 null 。
def closure = { param ->
if (param == 1)
return 1
2
}
assert closure(1) == 1 // 遇到返回语句
assert closure(-1) == 2 // 最后一条语句求值为2
void voidMethod() {
}
def nullReturn = { voidMethod() }
// voidMethod返回void,所以闭包返回null
assert nullReturn() == null
1.2 闭包作用域
闭包可以访问其周围作用域中的变量,这些变量可以是局部变量或传递给定义闭包的方法的参数。如果闭包在类方法中定义,对象实例字段也对闭包可用。
def greeting ( name ) {
def salutation = "Hello"
超级会员免费看
订阅专栏 解锁全文
1371

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



