1

groovyshv2.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)

このエラーはclosureonの既知のバグgroovyshですか?

4

1 に答える 1

1

はい、これは既知の問題です。groovysh で def を使用すると、期待どおりに動作しません。データ型で、またはデータ型で宣言された変数はdef、シェルが repl に入力された名前を探す場所である GroovyShell のバインディングに格納されません。

次のように def なしで変数を宣言すると機能します。

f = { x -> x }
于 2014-10-07T21:25:00.570 に答える