在lua中使用变量参数的pcall

时间:2015-08-18 11:21:29

标签: lua

我正在寻找一种方法来实现一个在lua5.3中具有可变参数的函数。

我希望有类似的东西

function add(...)
local sum=arg + ...
return sum
end

stat,err=pcall(add,...)

感谢

1 个答案:

答案 0 :(得分:6)

function add(...)
   local sum = 0
   for _, v in ipairs{...} do 
      sum = sum + v
   end
   return sum
end

pcall(add, 1, 2, 3)
-->   true    6

或者这可能更接近你想要的东西:

function add(acc, ...)
   if not ... then
      return acc
   else 
      return add(acc + ..., select(2, ...))
   end
end

pcall(add, 1, 2, 3)
-->   true    6