Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

in Lua, how can I use a table as varargs (...)?

Tags:

lua

strjoin accepts one string and then a variable number of arguments. I'm looking for a way to take a table with a variable number of arguments and use each item in the table as another argument.

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])
like image 840
Asa Ayers Avatar asked Aug 13 '10 03:08

Asa Ayers


1 Answers

Use the unpack function:

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

Newer versions of Lua place the unpack function in the table module:

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

This doesn't answer your question directly, but as lhf pointed out, the following is much more efficient:

local myString = table.concat(myTable, ' ')
like image 89
Judge Maygarden Avatar answered Oct 12 '22 00:10

Judge Maygarden