我正在编写一些代码,其中我的数据有多个字典。原因是,我有多个核心对象和多个较小的资产,并且用户必须能够选择较小的资产,并且在运行带有父级标记的代码的远距离操作中具有某些功能。
其中一个词典的示例:(我正在使用ROBLOX Lua 5.1,但该问题的语法应该相同)
local data = {
character = workspace.Stores.NPCs.Thom,
name = "Thom", npcId = 9,
npcDialog = workspace.Stores.NPCs.Thom.Dialog
}
local items = {
item1 = {
model = workspace.Stores.Items.Item1.Main,
npcName = "Thom",
}
}
这是我的功能:
local function function1(item)
if not items[item] and data[items[item[npcName]]] then return false end
end
如您所见,我尝试使用另一个字典中的键为字典建立索引。通常这没问题。
local thisIsAVariable = item[item1[npcName]]
但是我上面使用的方法尝试为项目字典中的数据索引数据字典。
没有大量的局部变量和混乱,有没有办法做到这一点?我有个主意,将有冲突的字典引用包装在tostring()函数中以将它们分开,这样行得通吗?
谢谢。
答案 0 :(得分:1)
据我所知,您的问题是:
data[items[item[npcName]]]
正在寻找数据[“ Thom”] ...,但是数据表中没有这样的键。您有一个具有“ Thom”值的“名称”键。您可以反转数据表中的名称键和值。 “ Thom” =名称