当我尝试使用递归函数调用运行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)
有人可以指出我导致异常的任何语法错误吗?
答案 0 :(得分:0)
必须在实现之前定义Closure,以便递归调用工作。
def factorial
factorial = { n ->
if (n == 0) 1
else n * factorial(n - 1)
}
factorial(4)