我觉得这是一个非常愚蠢的问题......
t = {
a = {x,y},
b = {z},
}
如何打印键“a”的第一个值?("x") 两者都不是
print(t["a"][1])
也不
print(t.a[1])
做到了,那我该怎么办?
'[]' 和 '.' 有什么区别?顺便提一句?
'[]' 和 '.' 有什么区别?顺便提一句?
点只是带有字符串的索引运算符 [] 的快捷方式/语法糖。
foo.bar相当于foo["bar"]。foo[bar]另一方面,将返回变量值索引处的值bar,所以如果bar碰巧baz它会做foo["baz"]/ foo.baz。
[]当使用不是有效 Lua 标识符(“变量名”)或非字符串作为索引的字符串时,您必须使用- 语法,例如foo["Jon Doe"]or foo[3]。
在此代码中x,y、 和z都是未定义的,因此t.a和t.b是空表。我对您上一个问题的回答将x,y和z作为字符串存储(但作为键,而不是作为值)。