groovysh上的闭包错误
运行groovysh上的闭包错误,groovy,groovyshell,Groovy,Groovyshell,运行groovyshv2.3.6: groovy:000> def f = {x -> x} groovy:000> f(1) 这个错误是groovysh上的closure的已知错误吗?是的,这是一个已知的问题,在groovysh中使用def并不像您预期的那样工作。使用def或数据类型声明的变量不会存储在GroovyShell的绑定中,shell在该绑定中查找repl中输入的名称 如果您在不使用def的情况下声明变量,它将起作用,如下所示: f = { x -> x }
groovysh
v2.3.6:
groovy:000> def f = {x -> x}
groovy:000> f(1)
这个错误是
groovysh
上的closure
的已知错误吗?是的,这是一个已知的问题,在groovysh中使用def并不像您预期的那样工作。使用def
或数据类型声明的变量不会存储在GroovyShell的绑定中,shell在该绑定中查找repl中输入的名称
如果您在不使用def的情况下声明变量,它将起作用,如下所示:
f = { x -> x }
当
closure
被认为是一个表达式时,从命名的closure
中删除def
关键字实际上更受欢迎
f = { x -> x }