含义:尾调用就是指函数最后只执行调用这个函数的一件事,如下:
function f(x)
return g(x)
end
函数return时候只调用了另一个方法g(x),所以它是尾调用,我们为什么要使用尾调用呢?因为尾调用不需要使用栈空间,那么尾调用递归的层次可以无限制的,不会导致栈溢出。
为加深印象,以下例子都不属于尾调用
return g(x) +1 --不是返回当前函数
return x or g(x) --只返回一个可选值
return (g(x)) --强制返回一个值