从 LUA 中的相同 table 检索属性
Retrieve an attribute from the same table in LUA
我想知道是否可以在同一数组中检索 table 的属性。例如这里我想检索数组的 "list.index" 属性,怎么办?
{
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
},
创建 table 时无法在另一个条目中使用一个条目。
但是既然你定义了一个函数,你可以这样做:
onSelected = function(self)
if self.list.index == 1 then
-- it's 1
else
-- it's 2
end
end
只需确保使用 table 作为参数调用 onSelected。
或者,您可以在构造 table 之后设置函数,以便能够将 table 作为上值访问(而不是利用 table 构造函数):
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
作为上值,不需要将其作为参数传递。
我想知道是否可以在同一数组中检索 table 的属性。例如这里我想检索数组的 "list.index" 属性,怎么办?
{
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
},
创建 table 时无法在另一个条目中使用一个条目。
但是既然你定义了一个函数,你可以这样做:
onSelected = function(self)
if self.list.index == 1 then
-- it's 1
else
-- it's 2
end
end
只需确保使用 table 作为参数调用 onSelected。
或者,您可以在构造 table 之后设置函数,以便能够将 table 作为上值访问(而不是利用 table 构造函数):
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
作为上值,不需要将其作为参数传递。