在groovy递归fibonacci函数期间出现MissingMethodException

时间:2015-11-14 23:19:05

标签: 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 signature of method:
fib.factorial() is applicable for argument types: (java.lang.Integer)

有人可以指出我导致异常的任何语法错误吗?

1 个答案:

答案 0 :(得分:0)

必须在实现之前定义Closure,以便递归调用工作。

def factorial 

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

factorial(4)