如何使用这个 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 -- 这里出现问题
   return o
end

所以,我的问题是: 如何在我的构造函数中访问 [":path"] 变量来分配一个值?

self.path 不起作用

self.:path 不起作用

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

这种语法 [":foo"] 是我在 Envoy 样例过滤器中找不到其他地方的东西。

感谢您的帮助

点赞
用户5675002
用户5675002

将下面翻译成中文并且保留原本的 markdown 格式

点符号完整表达式 的简写。

table.nametable["name"] 是等价的。因此,在你的情况下,应该使用 self[":path"]

2019-05-23 09:26:30