dictionary - 当键是 Lua 中另一个字典中的值时,如何从字典中获取值?
问题描述
我正在编写一些代码,其中有多个数据字典。原因是,我有多个核心对象和多个较小的资产,用户必须能够选择较小的资产并在远处运行代码并注明父级。
其中一个字典的示例:(我在 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() 函数中以将它们分开——这行得通吗?
谢谢你。
解决方案
在我看来,您的问题是:
data[items[item[npcName]]]
正在寻找数据[“Thom”] ...但您在数据表中没有这样的键。您有一个具有“Thom”值的“name”键。您可以反转数据表中的名称键和值。“汤姆”=名字
推荐阅读
- python - 使用 docxtpl 模板/python(边框属性)完成此表的最佳方法
- plsql - 使用索引 INPLSQL 批量插入
- postgresql - 在本地机器上设置 Postgres 服务器 - Windows 10
- html - 使用scrapy和xpath解析数据
- go - 由于“恐慌:reflect.StructOf:重复字段”而无法运行 Go 服务器
- python - 在Python中从Excel中获取形状内的文本框值
- react-native - React Native Agora SDK
- c - printf 不会为 int 正确打印 %d 的输出
- javascript - 为什么 React 重新渲染不断发生?
- asp.net-core - PasswordSignInAsync 返回总是失败