Recursion groovy递归fibonacci函数期间的MissingMethodException

Recursion groovy递归fibonacci函数期间的MissingMethodException,recursion,groovy,Recursion,Groovy,当我尝试运行带有递归函数调用的groovy脚本时,我总是遇到一个缺少方法的异常 如果这是我的脚本内容: def factorial = { n -> if (n == 0) 1 else n * factorial(n - 1) } factorial(4) 它保存在一个名为fib.groovy的文件中,通过调用groovy fib.groovy运行脚本,结果如下: Caught: groovy.lang.MissingMethodException: No signatur

当我尝试运行带有递归函数调用的groovy脚本时,我总是遇到一个缺少方法的异常

如果这是我的脚本内容:

def factorial = { n ->
  if (n == 0) 1 
  else n * factorial(n - 1)
}

factorial(4)
它保存在一个名为fib.groovy的文件中,通过调用groovy fib.groovy运行脚本,结果如下:

Caught: groovy.lang.MissingMethodException: No signature of method:
fib.factorial() is applicable for argument types: (java.lang.Integer)

有人能指出我遗漏的导致异常的语法错误吗?

在实现之前,必须定义闭包,递归调用才能工作

def factorial 

factorial = { n ->
  if (n == 0) 1 
  else n * factorial(n - 1)
}

factorial(4)