Я пишу код, в котором у меня есть несколько словарей для моих данных. Причина в том, что у меня есть несколько основных объектов и несколько более мелких активов, и пользователь должен иметь возможность выбрать меньший ресурс и отключить некоторые функции на расстоянии, запустить код с указанием родителя.
Пример одного из словарей: (я работаю в 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 (), чтобы разделить их - это сработает?
Спасибо.