Как использовать эту таблицу LUA? - PullRequest
2 голосов
/ 23 мая 2019

Я новичок в LUA и использую его для создания некоторых фильтров посланников. Итак, я нашел кусок кода с таблицей, как это:

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 Ответ

3 голосов
/ 23 мая 2019

Точечная запись является синтаксическим сахаром для полной формы.

table.name эквивалентно table["name"]. Так что в вашем случае это должно быть self[":path"]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...