私はGroovyを学んでいて、この奇妙な振る舞いに出くわしました. で次のコードを実行するgroovysh
と問題なく動作しますが、「foo.groovy」として保存してから実行すると、3 行目にgroovy foo.groovy
結果が表示されます。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 }
このエラーは解消されますが、より複雑な実際のユースケースでは回避したいと思います。クラス内の同じ問題を扱うこの質問も見つけましたが、私のメソッドはクラス内になく、保持したいPythonのバックグラウンドから来ているため、使用するソリューションは適用できませんその方法。this.&
私は何を間違っていますか?そして、この動作はどこに文書化されていますか?