var colorsDict: [String : Int]var patternsDict: [String : Any] // [String : colorsDict]var BUGsDict: [String : Any] // [String : patternsDict]
我没有收到任何错误或抱怨这种语法。
当我想增加玩家的错误收集,但这样做:
BUGs["ladyBUG"]["spotted"]["red"]++
我得到这个错误:字符串不能转换为’DictionaryIndex<字符串,任何>‘错误的胡萝卜在第一个字符串下。
另一个类似的帖子建议使用“as Any?”在代码中,但是该帖子的OP只有一个字典一个深,所以可以轻松地这样做:dict [“string”] as Any? …
我不知道如何用多层次的字典来做到这一点。任何帮助将不胜感激。
在使用字典时,您必须记住字典中可能不存在一个键。因此,字典总是返回可选项。所以每次通过密钥访问字典时,您必须按如下方式在每个级别解包:BUGsDict["ladyBUG"]!["spotted"]!["red"]!++
我想你知道可选项,但是要清楚,如果您确定密钥存在于字典中,请使用感叹号,否则最好使用问号:
BUGsDict["ladyBUG"]?["spotted"]?["red"]?++
附录:这是我在 *** 场上用于测试的代码:
var colorsDict = [String : Int]()var patternsDict = [String : [String : Int]] ()var BUGsDict = [String : [String : [String : Int]]] ()colorsDict["red"] = 1patternsDict["spotted"] = colorsDictBUGsDict["ladyBUG"] = patternsDictBUGsDict["ladyBUG"]!["spotted"]!["red"]!++ // Prints 1BUGsDict["ladyBUG"]!["spotted"]!["red"]!++ // Prints 2BUGsDict["ladyBUG"]!["spotted"]!["red"]!++ // Prints 3BUGsDict["ladyBUG"]!["spotted"]!["red"]! // Prints 4总结
以上是内存溢出为你收集整理的字典 – 如何在Swift中访问深度嵌套的字典全部内容,希望文章能够帮你解决字典 – 如何在Swift中访问深度嵌套的字典所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)