Methods Groovy方法调用语法

Methods Groovy方法调用语法,methods,groovy,Methods,Groovy,我是groovy的新手,在运行下面的方法时出现以下错误 def hi() { println("Hello World!") } hi() def runHi() { println("Running hi()") hi() } runHi() 它将给出: ===> true Hello World! ===> null ===> true Running hi() ERROR groovy.lang.Mi

我是groovy的新手,在运行下面的方法时出现以下错误

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()
这也给出了完全相同的误差

没有方法的签名:static groovysh_evaluate.hi()适用于参数类型:()值:[]


有什么问题以及如何解决?

作为脚本应该可以正常运行。如果要通过Groovy Shell运行它,则需要打开解释器模式:

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