带有包含空格的键的 lua 表构造函数

Posted

技术标签:

【中文标题】带有包含空格的键的 lua 表构造函数【英文标题】:lua table constructor with keys containing spaces 【发布时间】:2022-01-17 03:52:03 【问题描述】:

我知道我可以像这样构造表格:

local t= 
    first = "value1",
    second = "value2"

现在我可以使用包含空格的键,例如t["some key"] = "some value" 但是有没有办法用包含空格的键来构造像上面这样的表? 我尝试了一些东西,但我只是犯了错误

【问题讨论】:

【参考方案1】:

您可以通过将任何表达式放在括号中来将其声明为表构造函数中的键:

local t = 
  ["some key"] = "some value",
  [234567 + 2] = "other value",

【讨论】:

【参考方案2】:
local t= 
    first = "value1",
    second = "value2"

是语法糖

local t= 
    ["first"] = "value1",
    ["second"] = "value2"

这种方便的语法仅适用于名称。 Lua 名称只能由字母、数字和下划线组成,并且不能以数字开头。

由于有效的 Lua 标识符可能不包含空格,因此您不能使用语法糖。因此,唯一的方法是使用完整的语法

local t = ["hello world"] = 1

这也适用于索引该表字段。所以唯一的办法就是t["hello world"]

【讨论】:

以上是关于带有包含空格的键的 lua 表构造函数的主要内容,如果未能解决你的问题,请参考以下文章

使用带有 sql 的键值对搜索 php 多维关联数组,例如 '%LIKE%' 构造

Lua封装&C++实践——Lua注册C++构造函数

在 sqlalchemy 映射类构造函数中忽略额外关键字的选项?

HttpGetAttribute不包含带有1个参数的构造函数

Lua封装&C++实践——Lua注册C++构造函数

Lua封装&C++实践——Lua注册C++构造函数