Lua函数返回

时间:2015-03-10 04:11:34

标签: lua

我想知道

之间是否有任何显着差异
function foo()
  do something
  return bar()
end

function foo()
  do something
  bar()
end

1 个答案:

答案 0 :(得分:4)

两个主要区别。

第一个将从bar返回的值返回给foo的调用者。第二个完全忽略了它们。

第一个也被视为尾调用,因此可以消除以保存堆栈帧(防止递归炸毁堆栈)而第二个不会。