Lua table 构造函数中的字符串连接
Lua string concatenation within table constructor
我正在尝试为我的脚本初始化 table 个默认属性,但我遇到了以下情况:
_property_table = {
k1 = "val1",
k2 = "val2",
k3 = k1 .. "val3",
}
print(_property_table.k3)
当尝试在 table 构造函数中连接 k1 时,lua 失败并出现以下错误:
_impl error: [string "main.lua"]:10: attempt to concatenate global 'k1' (a nil value)
这种行为是预期的,还是我遗漏了什么?
我是 Lua 的新手,所以任何关于如何进行的提示或建议都将不胜感激。
谢谢
该行为是预期的:k1
不是变量名,k1 =
只是 table 表达式中 ["k1"] =
的快捷方式。有两种基本解决方案:
使用一个变量:
local k1 = "val1"
_property_table = {
k1 = k1,
k2 = "val2",
k3 = k1 .. "val3",
}
在table创建后赋值k3
:
_property_table = {
k1 = "val1,
k2 = "val2",
}
_property_table.k3 = _property_table.k1 .. "val3"
我正在尝试为我的脚本初始化 table 个默认属性,但我遇到了以下情况:
_property_table = {
k1 = "val1",
k2 = "val2",
k3 = k1 .. "val3",
}
print(_property_table.k3)
当尝试在 table 构造函数中连接 k1 时,lua 失败并出现以下错误:
_impl error: [string "main.lua"]:10: attempt to concatenate global 'k1' (a nil value)
这种行为是预期的,还是我遗漏了什么?
我是 Lua 的新手,所以任何关于如何进行的提示或建议都将不胜感激。
谢谢
该行为是预期的:k1
不是变量名,k1 =
只是 table 表达式中 ["k1"] =
的快捷方式。有两种基本解决方案:
使用一个变量:
local k1 = "val1" _property_table = { k1 = k1, k2 = "val2", k3 = k1 .. "val3", }
在table创建后赋值
k3
:_property_table = { k1 = "val1, k2 = "val2", } _property_table.k3 = _property_table.k1 .. "val3"