在lua中使用变量参数的pcall

bis*_*nux 4 lua

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

我希望有这样的事情

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

stat,err=pcall(add,...)
Run Code Online (Sandbox Code Playgroud)

谢谢

rya*_*son 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
Run Code Online (Sandbox Code Playgroud)

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

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

pcall(add, 1, 2, 3)
-->   true    6
Run Code Online (Sandbox Code Playgroud)