我发现自己开始想要这样的东西:
extension Dictionary {
mutating func get(_ key: Key, backup: Value) -> Value {
if let stored = self[key] {
return stored
} else {
self[key] = backup
return backup
}
}
}
但根据我的经验,Swift遗漏了这样的东西,因为它有另一种(预期的)方法。我没有在文档中找到这样的方法。 我是否错过了这个功能,还是应该创建它?另外,如果他们将其删除,我不应该创建它,为什么?
答案 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
...然后设置一个值
但是,在这种情况下,生成扩展或功能是最佳选择。
希望这有助于澄清事情:)