在Lua中,我如何使用一个表作为varargs(...)?

strjoin接受一个字符串和一个可变数量的参数。我正在寻找一种方法,将具有可变数量参数的表用作另一个参数中的每个项目。

local myTable = {
    'a',
    'b',
    'c',
}
-- 这就是我想要的,除了我不想硬编码一个特定数量的参数

local myString = strjoin(' ', myTable [1],myTable [2],myTable [3])

原文链接 https://stackoverflow.com/questions/3473770

点赞
stackoverflow用户1491
stackoverflow用户1491

使用 unpack 函数:

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

更新的 Lua 版本将 unpack 函数放在 table 模块中

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

这并不直接回答你的问题,但正如 lhf 所指出的那样,以下方法更有效:

local myString = table.concat(myTable, ' ')
2010-08-13 04:51:30
stackoverflow用户107090
stackoverflow用户107090

使用 table.concat 而不是 strjoin

2010-08-13 10:42:14