【发布时间】:2018-09-21 19:32:36
【问题描述】:
我正在为考试而学习,但我很困惑为什么在调用函数 4 时得到 24 的结果。
scala> def fact(n:Int):Int = if (n<2) 1 else n*fact(n-1)
fact: (n: Int)Int
scala> fact(4)
res0: Int = 24
如果我是对的,答案不应该是
(4) * fact(4-1) = 12 ?
非常感谢任何帮助。
【问题讨论】:
-
不,根据那个函数应该是24
-
您能否详细说明原因? @smac89
-
if (4<2) 1 else 4 * (if (3 < 2) 1 else 3 * (if (2 < 2) 1 else 2 * (if (1 < 2) 1))) -> 4 * 3 * 2 * 1 = 24 -
我投票决定将此问题作为题外话结束,因为它完全基于发帖人的概念错误。