Groovy 将`with`与CliBuilder一起使用时出现意外行为
给定一个脚本Groovy 将`with`与CliBuilder一起使用时出现意外行为,groovy,Groovy,给定一个脚本test.groovy def cli = new CliBuilder().with {} println cli cli = new CliBuilder() cli.with {} println cli 当我运行groovy test.groovy时,输出是 null groovy.util.CliBuilder@3c22fc4c 为什么第一个输出行为null?这是我的groovy--versioninfo: Groovy Version: 2.4.3 JVM: 1.8
test.groovy
def cli = new CliBuilder().with {}
println cli
cli = new CliBuilder()
cli.with {}
println cli
当我运行groovy test.groovy
时,输出是
null
groovy.util.CliBuilder@3c22fc4c
为什么第一个输出行为null
?这是我的groovy--version
info:
Groovy Version: 2.4.3 JVM: 1.8.0_40 Vendor: Oracle Corporation OS: Mac OS X
它是
null
,因为with(Closure c)
应该返回委托
(这里委托是CliBuilder
的一个实例),该委托将被分配给cli
。用作:
def cli = new CliBuilder().with { it }
它是
null
,因为with(Closure c)
应该返回委托
(这里委托是CliBuilder
的一个实例),该委托将被分配给cli
。用作:
def cli = new CliBuilder().with { it }
您没有从传递给方法的闭包返回任何内容,因此
with
返回null
,并且cli
在第一个示例中变为null
您没有从传递给方法的闭包返回任何内容,因此with
返回null
,在第一个示例中,cli
变为null