в Lua, как я могу использовать таблицу как varargs (...)? - PullRequest
10 голосов
/ 13 августа 2010

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 ]

20 голосов
/ 13 августа 2010

Используйте функцию распаковка :

local myString = strjoin(' ', unpack(myTable))

В более новых версиях Lua функция распаковки размещается в модуле стола :

local myString = strjoin(' ', table.unpack(myTable))

Это не дает прямого ответа на ваш вопрос, но, как указывает lhf , следующее гораздо эффективнее:

local myString = table.concat(myTable, ' ')
6 голосов
/ 13 августа 2010

Используйте table.concat вместо strjoin.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...