0

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

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

如何打印键“a”的第一个值?("x") 两者都不是

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

也不

print(t.a[1])

做到了,那我该怎么办?

'[]' 和 '.' 有什么区别?顺便提一句?

4

2 回答 2

3

'[]' 和 '.' 有什么区别?顺便提一句?

点只是带有字符串的索引运算符 [] 的快捷方式/语法糖。 foo.bar相当于foo["bar"]foo[bar]另一方面,将返回变量值索引处的值bar,所以如果bar碰巧baz它会做foo["baz"]/ foo.baz

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

于 2013-04-29T16:43:14.977 回答
1

在此代码中xy、 和z都是未定义的,因此t.at.b是空表。我对您上一个问题的回答x,yz作为字符串存储(但作为,而不是作为值)。

于 2013-04-29T16:25:15.667 回答