变量赋值之间有什么区别
local newpos = {}
newpos.x = 1 ----- or --------- newpos[x] = 1
我不知道我说的是什么,但对我来说这些似乎是相同的,如果不相似的话?
答案 0 :(得分:2)
newpos.x = 1
与newpos["x"] = 1
相同,即他们都将存储在密钥string "x"
的值设置为1
。
newpos[x] = 1
不同。这会将存储在键contents of variable x
的值设置为1
。
Try it并查看。
local newpos = {}
newpos.x = 1
print(newpos.x, newpos["x"], x, newpos[x])
newpos["x"] = 2
print(newpos.x, newpos["x"], x, newpos[x])
local x = "var"
print(newpos.x, newpos["x"], x, newpos[x])
newpos[x] = 3
print(newpos.x, newpos["x"], x, newpos[x])
上述结果:
1 1 nil nil
2 2 nil nil
2 2 var nil
2 2 var 3