我是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示例过滤器中找不到的。
谢谢您的帮助
答案 0 :(得分:3)
点表示法是完整形式的语法糖。
table.name
等效于table["name"]
。因此,您的情况应该是self[":path"]