考虑以下代码片段 -
def factorial(number) {
if(number == 1)
return number;
else
return number * factorial(number - 1);
}
println factorial(50)
println factorial(50).getClass()
println()
println 45**20
println ((45**20).getClass())
输出是 -
0
class java.lang.Integer
1159445329576199417209625244140625
class java.math.BigInteger
问题 -
- 为什么 groovy在第一种情况下不会自动将结果提升
number * factorial(number-1)
为 a ?BigInt
- 为什么输出为0?为什么不是整数溢出后我们应该得到的随机数?