2017-02-07 16 views
2

Есть ли способ вернуть числовую последовательную таблицу в качестве vararg без использования распаковки внутри lua? Другими словами; можете ли вы переделать функцию распаковки?Можете ли вы преобразовать таблицу в vararg без распаковки?

Пример таблицы:

foo = {1, 2, 3} 

Пример функции:

function unpackTable(tab) 
    -- 
end 

Запрошенный результат:

1, 2, 3 
+1

Как это происходит, что 'unpack' недоступен в вашей Lua? –

ответ

7
local unpackTable do 

local function unpackTable_(tab, i, ...) 
    if i == 0 then return ... end 
    return unpackTable_(tab, i-1, tab[i], ...) 
end 

unpackTable = function(tab) 
    return unpackTable_(tab, #tab) 
end 

end 

foo = {1, 2, 3} 
print(unpackTable(foo)) 
+0

Работает отлично, спасибо. – Skere