в 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])
10
задан Asa Ayers 13 August 2010 в 03:53
поделиться

2 ответа

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

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

Более новые версии Lua помещают функцию unpack в модуль таблицы :

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

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

local myString = table.concat(myTable, ' ')
20
ответ дан 3 December 2019 в 16:08
поделиться

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

6
ответ дан 3 December 2019 в 16:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: