lua中的.调用和[]取成员对象有区别吗?

我试了一下,对于普通的table类型,比方说.

local t={}
t["a"]=123
print(t.a)

使用t.a就可以用到t["a"].
但这是适用于所有情况吗?包括如果t是一个用lua机制实现的类的对象,a是t的成员数据,这样的话正常地讲可以用t.a获取到a,但能用t["a"]吗?如果我非要用"a"这个字符串获取到t.a这个成员数据,这样可行吗?

阅读 890
1 个回答

t.a 等价于 t["a"]

lua 里只有一个 table 数据类型,取成员的方式实际只有[]t["a"] 可以简写为 t.a

有些时候简写不了,比如 t[1] ,或者 t["if"] (关键字,不能写成 t.if

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进