Lua:这些变量赋值有什么不同?

什么是变量赋值之间的区别

    local newpos = {}
newpos.x = 1       ----- 或者 --------- newpos[x] = 1

我不知道我在说什么,但对我来说这些似乎是相同的东西,如果不是相似的话?

点赞
用户258523
用户258523

newpos.x = 1newpos["x"] = 1 是一样的,它们都将在键 string "x" 处存储的值设置为 1

newpos[x] = 1 是不同的。它将在键 变量 x 的内容 处存储的值设置为 1

试一试 并查看结果。

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
2014-04-20 20:57:49