【发布时间】:2013-10-29 21:37:00
【问题描述】:
我正在学习 Groovy,遇到了这种奇怪的行为。在groovysh 中执行以下代码没有问题,但将其保存为“foo.groovy”并通过groovy foo.groovy 运行它会导致第3 行中的MissingPropertyException: No such property: a for class: foo:
def a(n) { n*n }
def x(m) { m(2) }
x(a)
将a 更改为闭包a = { n -> n*n } 会使这个错误消失,但我想在更复杂的实际用例中避免这种情况。我还发现 this question 处理相同的问题类内,但使用 this.& 的解决方案不适用,因为我的方法不在类内,并且即将到来从 python 背景我想保持这种方式。
我做错了什么?这种行为记录在哪里?
【问题讨论】:
标签: groovy higher-order-functions