Lua:在返回表的函数后面可以加逗号吗?

所以我的 Lua 代码看起来像这样:

function makeTable()
    return {1,2,3}
end

table = {
    makeTable(),
    {4,5,6}
}

table 的结果应该是 {{1, 2, 3}, {4, 5, 6}}

我担心在 makeTable() 后面加逗号是否在 Lua 中有效,或者是否有更好的方法使函数返回的表成为表的第一项?

点赞
用户1060383
用户1060383

这样是可行的。你的代码里有问题或者你想要达成什么目标吗?或者如果你愿意,你可以这样做:

function makeTable()
    return {{1,2,3}}
end

t = maketable()
table.insert(t, {4,5,6})
2017-09-01 00:33:00
用户1294207
用户1294207

这段代码完全符合Lua语法。将以下代码添加到底部进行尝试:

io.write("{")
for i,v in ipairs(table) do
    io.write("{")
    for j,m in ipairs(v) do
       io.write(m)
       io.write(",")
    end
    io.write("},")
end
print("}")

你将看到它输出:{{1,2,3,},{4,5,6,},}

你正确地将一个数组添加到了你的二维数组中。

2017-09-01 00:33:41
用户7556173
用户7556173

你可以这样做。但是我认为这样会更干净:

function makeTable()
    return {1, 2, 3}
end

local t = {}
table.insert(t, makeTable())
table.insert(t, {4, 5, 6})
2017-09-02 06:42:44
用户1108505
用户1108505

这完全没有问题。

你写道“在函数之后放个逗号看起来很奇怪”。嗯,这个逗号其实和在表达式里使用的逗号完全一样:它把一个表的值和下一个表的值隔开。

换句话说,{ makeTable(), {4,5,6} } 就像 {1,2} 一样,只不过第一个值是 makeTable(),第二个值是 {4,5,6}

2017-09-05 21:02:33