Lua之尾调函数的用法
--当函数的最后返回结果调用另一个函数,称之为尾调函数
1 function f(x) 2 return g(x) 3 end
--由于“尾调用”不会耗费栈空间,所以一个程序可以拥有无数嵌套的“尾调用”
1 function gf(n) 2 if n>0 then 3 return gf(n-1) 4 end 5 end
--判断当前调用是一条“尾调用”的准则:一个函数在调用完另一个函数之后,是否就无其他事情需要做了
--下面举一下不是尾调用的例子
1 return g(x)+1 --不是尾调函数,因为还必须做一次加法 操作 2 return (g(x)) --不是尾调函数,因为必须调整为一个返回值 3 return x or g(x) --不是尾调函数,因为还需要进行比较的操作