Lua多维table调用
Lua multidimensional table call
我似乎在 Lua 上遇到了多维表(数组?)的问题。我有一个看起来像这样的:
arr =
{
"stats" = {
"23" = {
"1" = {
"account_id" = "10",
"info" = {
"name" = "john"
}
}
}
}
}
每当我尝试使用以下方式访问某些信息时:
local entry = "23"
print(arr['stats'][entry]['1'])
或
print(arr['stats'][entry]['1']['info']['name'])
我得到 nil 值,是否允许在调用表时将字符串与变量混合?知道我做错了什么吗?
好像lua不接受像
这样的东西
arr = { "string" = "value"}
所以,要么
arr = { string = "value"}
或者你
arr = {["string"] = value}
这样,您的 table 必须重写为这样,以便 运行 在 lua 5.3 解释器上:
arr =
{
stats =
{
["23"] =
{
["1"] =
{
account_id = "10",
info =
{
name = "john"
}
}
}
}
}
这样做,你的线路
print(arr['stats'][entry]['1']['info']['name'])
运行没问题。
此外,在可以使用点的情况下使用括号也不是好的做法。这并不是说您的脚本不会 运行 否则,但是如果您像这样编写该行,代码会变得更加清晰易懂并且更容易调试:
print(arr.stats[entry]['1'].info.name)
希望对您有所帮助...
我似乎在 Lua 上遇到了多维表(数组?)的问题。我有一个看起来像这样的:
arr =
{
"stats" = {
"23" = {
"1" = {
"account_id" = "10",
"info" = {
"name" = "john"
}
}
}
}
}
每当我尝试使用以下方式访问某些信息时:
local entry = "23"
print(arr['stats'][entry]['1'])
或
print(arr['stats'][entry]['1']['info']['name'])
我得到 nil 值,是否允许在调用表时将字符串与变量混合?知道我做错了什么吗?
好像lua不接受像
这样的东西arr = { "string" = "value"}
所以,要么
arr = { string = "value"}
或者你
arr = {["string"] = value}
这样,您的 table 必须重写为这样,以便 运行 在 lua 5.3 解释器上:
arr =
{
stats =
{
["23"] =
{
["1"] =
{
account_id = "10",
info =
{
name = "john"
}
}
}
}
}
这样做,你的线路
print(arr['stats'][entry]['1']['info']['name'])
运行没问题。
此外,在可以使用点的情况下使用括号也不是好的做法。这并不是说您的脚本不会 运行 否则,但是如果您像这样编写该行,代码会变得更加清晰易懂并且更容易调试:
print(arr.stats[entry]['1'].info.name)
希望对您有所帮助...