2015-08-18 44 views
3

我正在寻找一种pcall函数,它具有lua5.3中的可变参数。lua中带有可变参数的pcall

我希望的东西,这

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

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

感谢像

+0

定义'加(...) 'as'foldl1(function(x,y)return x + y end,{...})' –

回答

4
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 
相关问题