gpt4 book ai didi

Swift:词典词典,无法获取下标

转载 作者:行者123 更新时间:2023-12-05 07:14:41 26 4
gpt4 key购买 nike

我在这里查看了其他下标问题,但我认为它们不符合我的问题。我有一本字典字典 - Dictionary[String:Dictionary[String:String]]

在扩展中,我想遍历所有值(Dictionary[String:String] 并检索其中一个值。

所以我这样写:

for dictNEO in Array(self.values)  {
print(dictNEO)
print(type(of: dictNEO))
print(dictNEO["approachDate"])
}

并且在最后一行打印时出现此错误:Value of type 'Value' has no subscripts

这是前两行打印:

["nominalDist": "\"13.58 ", "approachDate": "\"2020-Feb-01 08:18 ± < 00:01\"", "minimumDist": "\"13.58 ", "diameter": "\"92 m -  210 m\"", "name": "\"(2017 AE5)\""]
Dictionary<String, String>

所以我很困惑为什么当它看到字典的类型时告诉我它没有下标。

最佳答案

如果我理解正确的话,你已经把它写成字典的扩展,这意味着 self是通用的,定义为 Dictionary<Key, Value>而不是你的特定类型所以在你的for loop 您正在遍历 [Value] 的数组。

所以你需要类型转换 Value在将其作为字典访问之前

if let dictionary = dictNEO as? [String: String] {
print(dictNEO["approachDate"])
}

但是因为扩展到 Dictionary 没有什么意义在访问特定键的地方,最好将其编写为函数。由于字典现在定义明确,所以最后一个 print 没有问题。

func printValuesForSubKey(_ key: String,  _ dict: [String: [String: String]]) {
for (dictNEO) in dict.values {
print(dictNEO)
print(type(of: dictNEO))
print(dictNEO[key])
}
}

请注意,我没有解释为什么 type(of:)将其识别为 [String: String]

关于Swift:词典词典,无法获取下标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59795627/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com