2015-08-18 41 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 
相關問題