8、Groovy闭包与GeeTwitter DSL实践

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"

    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值