Scala 函数嵌套

我们可以在 Scala 函数内定义函数,定义在函数内的函数称之为局部函数。

以下实例我们实现阶乘运算,并使用内嵌函数:

  1. object Test {
  2. def main(args: Array[String]) {
  3. println( factorial(0) )
  4. println( factorial(1) )
  5. println( factorial(2) )
  6. println( factorial(3) )
  7. }
  8. def factorial(i: Int): Int = {
  9. def fact(i: Int, accumulator: Int): Int = {
  10. if (i <= 1)
  11. accumulator
  12. else
  13. fact(i - 1, i * accumulator)
  14. }
  15. fact(i, 1)
  16. }
  17. }

执行以上代码,输出结果为:

  1. $ scalac Test.scala
  2. $ scala Test
  3. 1
  4. 1
  5. 2
  6. 6