在 Lua 中如何同时设置表中两个键的值?

3
我正在寻找的是像这样的代码。
local sometable = {
    [1] = [2] = "abc",
}

所以这肯定是设置两个键的错误方法(返回错误)。

1个回答

5

您遇到了一个错误,因为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)

"initialize" 函数是非常简洁的解决方案。 - Slavi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接