Swift标准词典是否具有获取或设置功能?

时间:2016-12-06 17:50:02

标签: swift dictionary swift-dictionary

我发现自己开始想要这样的东西:

extension Dictionary {
    mutating func get(_ key: Key, backup: Value) -> Value {
        if let stored = self[key] {
            return stored
        } else {
            self[key] = backup
            return backup
        }
    }
}

但根据我的经验,Swift遗漏了这样的东西,因为它有另一种(预期的)方法。我没有在文档中找到这样的方法。 我是否错过了这个功能,还是应该创建它?另外,如果他们将其删除,我不应该创建它,为什么?

2 个答案:

答案 0 :(得分:2)

不,它没有这样的功能。在这种情况下创建扩展是很好的。

答案 1 :(得分:0)

  

在Swift中没有这样的特定功能。

我确定你知道,你可以在Swift中搜索一个词典:

var stringsAsInts: [String:Int] = [
"zero" : 0,
"one" : 1,
"two" : 2,
"three" : 3,
"four" : 4,
"five" : 5,
"six" : 6,
"seven" : 7,
"eight" : 8,
"nine" : 9
]

stringsAsInts["zero"] // Optional(0)
stringsAsInts["three"] // Optional(3)
stringsAsInts["ten"] // nil

// Unwaraping the optional using optional binding
if let twoAsInt = stringsAsInts["two"] {
print(twoAsInt) // 2
}

// Unwaraping the optional using the forced value operator (!)
stringsAsInts["one"]! // 1

...然后设置一个值

  

但是,在这种情况下,生成扩展或功能是最佳选择。

希望这有助于澄清事情:)