В Lua, как я могу использовать таблицу как varargs (...)?
strjoin принимает одну строку, а затем переменное число аргументов. Я ищу способ взять таблицу с переменным числом аргументов и использовать каждый элемент в таблице в качестве другого аргумента.
local myTable = {
'a',
'b',
'c',
}
-- This is what I want except that I don't want to hard code
-- a specific number of parameters
local myString = strjoin(' ', myTable[1], myTable[2], myTable[3])
2 ответа
Решение
Используйте функцию распаковки:
local myString = strjoin(' ', unpack(myTable))
В более новых версиях Lua функция распаковки размещается в модуле table:
local myString = strjoin(' ', table.unpack(myTable))
Это не дает прямого ответа на ваш вопрос, но, как указал lhf, следующее гораздо эффективнее:
local myString = table.concat(myTable, ' ')