【Lua表的定义和访问】关于[]和点操作符的使用

【Lua表的定义和访问】关于[]和点操作符的使用

Lua表的定义可以通过下面两种方式

a = {x = "abc"}
b = {[y] = "abc"}

在这里,x将代表的是一个自字符串,而y代表的是一个对象,所以如果y = nilb的定义则是错误的,Lua会报错。

同样的,访问Lua的表也有两种方式,

a.x
b[y]

上面的.操作符,x是一个字符串,就为"x",而y代表的是一个对象。

总之,被[]括住的代表对象,不被括住的就代表字符串,需要是一个合法的标识符。

> b = {"m" = "abc"}
stdin:1: '}' expected near '='
> b = {1 = "abc"}
stdin:1: '}' expected near '='
> b = {_1 = "abc"}
> b = {["m"] = "abc"}
> b = {[1] = "abc"}

当然,如果[]中的是一个字符串,那么它是一个字符串对象,实际是对象,也能成功访问,比如a["x"]照样可以访问a={x = "abc"}中的x

> a = {x = "abc"}
> a.x
abc
> a[x]
nil
> a["x"]
abc

你可能感兴趣的:(lua,开发语言)