我有一个这样的嵌套字典:
let dictionary: [String: [String:String]?]? = [
"Some Value A":nil,
"Some Value B":nil,
"Some Value C":nil,
]
我有一个这样的函数应该返回一个字符串,但我对可选的绑定逻辑感到困惑。
func name(dictonary: [String: [String : String]?]?, info: String) -> String {
var tempString = ""
for (a, b) in ((dictonary[info])!)! {
tempString = tempString + "\n" + "\(a), population: \(b)"
}
return tempString
}
别介意错误的变量名...... 谢谢:p
答案 0 :(得分:0)
你有很多需要正确处理的选项。您需要做的第一件事是彻底阅读The Swift Programming Language书中关于选项的所有内容。
然后以下内容会更有意义:
func name(dictonary: [String: [String : String]?]?, info: String) -> String {
var tempString = ""
if let dictionary = dictionary, let innerDict = dictionary[info] {
for (key, value) in innerDict {
tempString += "\n" + "\(key), population: \(value)"
}
}
return tempString
}
关键是安全打开选项。从来没有(至少在你真正知道自己在做什么之前)强制解包(使用!
运算符)。