如果字典中缺少键,则Python字典上的setdefault()
方法将设置键的值并返回该值。 Reference。
Swift字典有类似的方法吗?
我尝试过:
var dic1 = ["a": 1]
let defVal = dic1["b", default: 2]
print(defVal) // prints 2
print(dic1) // prints ["a": 1]
// However, I need ["a": 1, "b": 2]
答案 0 :(得分:1)
这是声明了setDefault的扩展
extension Dictionary {
mutating func setDefault(_ key: Key, value: Value) {
if self[key] == nil {
self[key] = value
}
}
}
示例
var d1: [String: Int] = ["A": 4]
d1["C"] = 13
d1.setDefault("B", value: 42)
print(d1)
输出
[“ A”:4,“ C”:13,“ B”:42]
答案 1 :(得分:0)
如果我理解正确,python方法对字典的作用是这样的:
dict[someKey] = dict[someKey] ?? defaultValue
如果尚无与someKey
关联的值,请将defaultValue
与someKey
关联。
您可以将其扩展:
extension Dictionary {
subscript(default key: Key) -> Value? {
get { return self[key] }
set {
self[key] = self[key] ?? newValue
}
}
}
// usage:
// someDict[default: someKey] = someValue