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

Lua 如何理解表中的表字段?,lua,Lua,嗨,我想知道,为什么print(w[“x”])给出0,而print(w[x])给出零?因为x和“x”是两个不同的东西 x是一个零值,“x”是一个字符串 print(w[x])相当于代码中的print(w[nil]) > w={x=0, y=0, label = "console"} > print(w[x]) nil > print(w.x) 0 > print(w["x"]) 0 > 合成糖对人体有益吗 w={x=0, y=0, label = "conso

嗨,我想知道,为什么print(w[“x”])给出0,而print(w[x])给出零?因为x和“x”是两个不同的东西

x
是一个零值,
“x”
是一个字符串

print(w[x])
相当于代码中的
print(w[nil])

> w={x=0, y=0, label = "console"}
> print(w[x])
nil
> print(w.x)
0
> print(w["x"])
0
> 
合成糖对人体有益吗

 w={x=0, y=0, label = "console"}
因此
{x=0}
实际上将
0
存储在
键“x”

发件人:

类型表实现关联数组,即可以 不仅将数字作为索引,而且将除nil以外的任何Lua值作为索引 楠。(非数字是一个特殊值,用于表示未定义或 不可表示的数值结果,例如0/0。)表格可以 由很多种类组成的也就是说,它们可以包含所有类型的值(除了 零)任何值为nil的键都不被视为表的一部分。 相反,任何不属于表的键都有一个关联的 值为零。

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

x
是一个零值,
“x”
是一个字符串

print(w[x])
相当于代码中的
print(w[nil])

> w={x=0, y=0, label = "console"}
> print(w[x])
nil
> print(w.x)
0
> print(w["x"])
0
> 
合成糖对人体有益吗

 w={x=0, y=0, label = "console"}
因此
{x=0}
实际上将
0
存储在
键“x”

发件人:

类型表实现关联数组,即可以 不仅将数字作为索引,而且将除nil以外的任何Lua值作为索引 楠。(非数字是一个特殊值,用于表示未定义或 不可表示的数值结果,例如0/0。)表格可以 由很多种类组成的也就是说,它们可以包含所有类型的值(除了 零)任何值为nil的键都不被视为表的一部分。 相反,任何不属于表的键都有一个关联的 值为零。


但是在w={x=0,y=0,label=“console”}中,我已经有了一个键、值对(x,0)。@kkxx阅读我的答案。您的键值对是(“x”,0),而不是(x,0)。您必须写入
[x]=0
,但由于
x
为零,这将导致错误“表索引为零”。只有当
x
不是nil或NANSo,你的意思是,代码w={x=0,y=0,label=“console”}的第一行中的x是字符串“x”,而不是变量x?我知道,{x=0,y=0}在表构造函数中等于{x=0,y=0}。@kkxxx是的。在做任何其他事情之前,请先阅读Lua手册!但是在w={x=0,y=0,label=“console”}中,我已经有了一个键、值对(x,0)。@kkxx阅读我的答案。您的键值对是(“x”,0),而不是(x,0)。您必须写入
[x]=0
,但由于
x
为零,这将导致错误“表索引为零”。只有当
x
不是nil或NANSo,你的意思是,代码w={x=0,y=0,label=“console”}的第一行中的x是字符串“x”,而不是变量x?我知道,{x=0,y=0}在表构造函数中等于{x=0,y=0}。@kkxxx是的。在做任何其他事情之前,请先阅读Lua手册!