代码之家  ›  专栏  ›  技术社区  ›  xpt

Groovy方法调用语法

  •  0
  • xpt  · 技术社区  · 4 年前

    def hi() {
        println("Hello World!")
    }
    
    hi()
    
    def runHi() {
        println("Running hi()")
        hi()
    }
    
    runHi()
    

    会给它:

    ===> true
    Hello World!
    ===> null
    ===> true
    Running hi()
    ERROR groovy.lang.MissingMethodException:
    No signature of method: groovysh_evaluate.hi() is applicable for argument types: () values: []
    

    我不明白为什么 hi() 可以单独运行,但不能在另一个方法中运行。

    我也试过:

    static def hi() {
        println("Hello World!")
    }
    
    hi()
    
    static def runHi() {
        println("Running hi()")
        hi()
    }
    
    runHi()
    

    这也给出了完全相同的误差。

    No signature of method: static groovysh_evaluate.hi() is applicable for argument types: () values: []

    有什么问题,怎么解决?

    1 回复  |  直到 4 年前
        1
  •  1
  •   kay    4 年前

    这应该是一个脚本运行良好。如果要通过Groovy Shell运行它,则需要打开解释器模式:

    Shell变量都是非类型化的(即没有def或其他类型信息)。 这将设置一个shell变量: foo = "bar" 但是,这将计算局部变量,并且不会保存到shells环境中: def foo = "bar" 可以通过激活解释器模式来更改此行为。

    看到了吗 http://www.groovy-lang.org/groovysh.html .