在 Lua table 中同时为 2 个 key 设置值

我要找的代码如下:

local sometable = {
    [1] = [2] = "abc",
}

这显然是一种错误的为 2 个 key 赋值的方式。(会返回一个错误)

点赞
用户415823
用户415823

你收到了一个错误,因为 Lua 在表构造中没有设置多个键为单个值的语法。

在使用表作为数组(序列)时,你有一些选项,可以省略键:

local t = {'abc', 'abc'}

如果你不想重复值,请使用变量:

local init = 'abc'
local t = {init, init}

或者,编写一个函数来进行初始化:

local function initialize(t, v, first, last)
    first = first or 1
    last = last or first
    assert(first <= last, 'invalid first/last')
    for i = first, last do
        t[i] = v
    end
    return t
end

local t = initialize({}, 'abc', 1, 2)
2016-04-25 22:03:18