在表上的同一调用中设置2个键的值

Sla*_*avi 3 lua

我在寻找的是这样的代码.

local sometable = {
    [1] = [2] = "abc",
}
Run Code Online (Sandbox Code Playgroud)

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

Ada*_*dam 5

您收到错误,因为Lua没有将多个键设置为表构造函数中的单个值的语法.

您有几个选项,当使用表作为数组(序列)时,您可以省略键:

local t = {'abc', 'abc'}
Run Code Online (Sandbox Code Playgroud)

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

local init = 'abc'
local t = {init, init}
Run Code Online (Sandbox Code Playgroud)

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

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)
Run Code Online (Sandbox Code Playgroud)