Lua函数返回值

我想知道下面两种写法是否有明显的区别:

function foo()
  做一些事情
  返回 bar()
end

function foo()
  做一些事情
  bar()
end
点赞
用户258523
用户258523

两个主要的不同点

第一个将从 bar 中返回的值返回给 foo 的调用者。第二个则完全忽略这些值。

第一个也被视为尾调用,并且可以被消除以节省堆栈帧(防止递归导致堆栈溢出),而第二个则不行。

2015-03-10 04:13:41