groovysh上的关闭错误

时间:2014-10-07 21:22:04

标签: groovy groovyshell

运行groovysh v2.3.6:

groovy:000> def f = {x -> x}
groovy:000> f(1)
ERROR groovy.lang.MissingMethodException:
No signature of method: groovysh_evaluate.f() is applicable for argument types: (java.lang.Integer) values: [1]
Possible solutions: is(java.lang.Object), run(), run(), find(), any(), any(groovy.lang.Closure)

此错误是closuregroovysh的已知错误吗?

1 个答案:

答案 0 :(得分:1)

是的,这是一个已知问题,在groovysh中使用def并不像你期望的那样工作。使用def或数据类型声明的变量不会存储在GroovyShell的绑定中,而shell正在查找在repl中输入的名称。

如果您声明变量而不使用def,它将起作用:

f = { x -> x }