【问题标题】:How to use this LUA table?如何使用这个 LUA 表?
【发布时间】:2019-05-23 17:26:30
【问题描述】:

我是 LUA 的新手,我正在使用它来创建一些 Envoy 过滤器。所以,我找到了一段代码,上面有这样的表格:

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 示例过滤器中发现的。

感谢您的帮助

【问题讨论】:

    标签: lua


    【解决方案1】:

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

    table.name 等价于table["name"]。所以在你的情况下应该是self[":path"]

    【讨论】:

    • 好吧 .... 我太糟糕了 ^^ 实际上就像 javascript。这是我唯一没想到的:)谢谢
    • @FredMériot,是的,Lua 在某些方面与 javascript 非常相似,但 Lua 更通用,概念更统一 :)
    猜你喜欢
    • 2013-07-29
    • 1970-01-01
    • 2014-09-18
    • 1970-01-01
    • 2011-09-05
    • 1970-01-01
    • 2022-06-16
    • 2016-06-03
    • 2016-04-29
    相关资源
    最近更新 更多