如何理解表格中的表格字段?

时间:2019-11-08 10:55:44

标签: lua

> w={x=0, y=0, label = "console"}
> print(w[x])
nil
> print(w.x)
0
> print(w["x"])
0
> 

嗨,我想知道为什么print(w [“ x”])给出0,而print(w [x]]给出nil?

1 个答案:

答案 0 :(得分:2)

因为x和“ x”是两个不同的东西。

x是一个零值,而"x"是一个字符串。

print(w[x])等同于代码中的print(w[nil])

 w={x=0, y=0, label = "console"}

是用于的合成糖

w={["x"]=0, ["y"]=0, ["label"] = "console"}

因此{x=0}实际上将0存储在密钥"x"下。

来自Lua Reference Manual 2.1 Values and Types

  

类型表实现关联数组,即,可以   不仅具有数字,而且具有除nil以外的任何Lua值作为索引,并且   NaN。 (非数字是用于表示未定义或   无法表示的数值结果,例如0/0。)   异质;也就是说,它们可以包含所有类型的值(   零)。 任何值为零的键均不视为表的一部分。   相反,任何不属于表的键都具有关联的   无价值