如何使用此LUA表?

时间:2019-05-23 08:36:57

标签: lua

我是LUA的新手,并且正在使用它来创建一些Envoy过滤器。因此,我找到了一段带有这样的Table的代码:

MyClass = {
  [":path"] = "something"
}

我想向MyClass添加构造器,所以我这样做:

function MyObject:new (o, path)
   o = o or {}
   setmetatable(o, self)
   self.__index = self
   self.path = path -- Here is the problem
   return o
end

所以,我的问题是:如何访问构造器中的[“:path”]变量以分配值?

self.path不起作用

self.:path不起作用

self.[":path"]不起作用

这种语法[“:foo”]是我在Envoy示例过滤器中找不到的。

谢谢您的帮助

1 个答案:

答案 0 :(得分:3)

点表示法是完整形式的语法糖。

table.name等效于table["name"]。因此,您的情况应该是self[":path"]