Я хотел бы знать, можно ли получить атрибут таблицы в том же массиве. Например, здесь я хочу получить атрибут "список.индекс" моего массива, как это сделать?
{
category_title = "Weapon",
description = nil,
type = "list",
list = {items = {"Give", "Remove"}, index = 1},
style = {},
action = {
onSelected = function()
if list.index == 1 then
-- it's 1
else
-- it's 2
end
end
},





Невозможно использовать запись в другой записи при создании таблицы.
Но поскольку вы определяете функцию, вы можете сделать это:
onSelected = function(self)
if self.list.index == 1 then
-- it's 1
else
-- it's 2
end
end
Просто убедитесь, что вы вызываете onSelected с таблицей в качестве аргумента.
В качестве альтернативы вы можете установить функцию после построения таблицы, чтобы иметь возможность доступа к таблице как повышающему значению (в отличие от использования конструкторов таблиц):
local self = {
categoryTitle = "Weapon",
description = nil,
type = "list",
list = {items = {"Give", "Remove"}, index = 1},
style = {},
action = {}
}
function self.action.onSelected()
if self.list.index == 1 then
-- it's 1
else
-- it's 2
end
end
Таким образом, вы получаете self как повышающее значение, и вам не нужно передавать его в качестве аргумента.