这是显示尾递归的好例子吗?
public printName(){
System.out.println("Smith");
printName();
}
我无意在现实生活中这样做,但我以此为例进行考试。这是正确的吗?
最佳答案
不,有两个原因:
StackOverflowError
考虑一下Scala中几乎相同的代码,唯一的区别是Scala编译器将执行尾部调用优化,并且循环永远运行:
def printName() {
println("Smith");
printName()
}