如何循环嵌套字典以返回字符串?

时间:2017-07-22 02:28:30

标签: swift

我有一个这样的嵌套字典:

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

1 个答案:

答案 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
}

关键是安全打开选项。从来没有(至少在你真正知道自己在做什么之前)强制解包(使用!运算符)。