【发布时间】:2016-10-02 22:23:20
【问题描述】:
我在 Groovy 中遇到了 owner 闭包的概念,这让我很困惑,所以我编写了一个小程序来弄清楚 owner 是如何工作的:
def examineClosure(closure) {
closure()
}
examineClosure() {
println "$owner"
examineClosure() {
println "$owner"
}
}
不过,当我运行这段代码时,我得到了一个java.lang.StackOverflowError,我认为这是因为在内部闭包中评估$owner 时,Groovy 实际上是在外部闭包上隐式执行.call()。这是预期的行为吗?为什么结果与
examineClosure() {
println "$owner"
examineClosure() {
println "" + owner
}
}
据我了解,"some var: $var" 只是 "some var: " + var 的 Groovy 简写
【问题讨论】:
标签: groovy