Lua:打印嵌套表中的值

我觉得这是一个非常愚蠢的问题...

t = {
a = {x,y},
b = {z},
}

如何打印键'a'的第一个值?("x") 不是

print(t["a"][1])

也不是

print(t.a[1])

那么该怎么办?

顺便问一下'[]'和'.'的区别是什么?

点赞
用户107090
用户107090

在这段代码中,xyz均为未定义变量,所以t.at.b是空表。我对你之前问题的答案xyz存储为字符串(但作为键,而非值)。

2013-04-29 16:25:15
用户2128694
用户2128694

“[]”和“.”有什么区别?

对于字符串,点仅仅是索引运算符“[]” 的语法糖。foo.barfoo["bar"] 是等价的。另一方面,foo[bar]会返回变量bar所代表数值的索引,如果bar恰好为baz,则表示的是foo["baz"] / foo.baz

当使用无效Lua标识符(“变量名称”)的字符串或非字符串作为索引时,必须使用“[]”语法,例如foo["Jon Doe"]foo[3]

2013-04-29 16:43:14