Swift字典的重载+
示例
由于目前尚无在Swift中组合字典的简单方法,因此重载+and+=运算符以使用泛型添加此功能可能很有用。
//将两个字典结合在一起。如果两个字典都包含 //使用相同的键,使用右侧字典的值。 func +<K, V>(lhs: [K : V], rhs: [K : V]) -> [K : V] { var combined = lhs for (key, value) in rhs { combined[key] = value } return combined } //+重载的可变变体,允许使用字典 //附加到“就地”。 func +=<K, V>(inout lhs: [K : V], rhs: [K : V]) { for (key, value) in rhs { lhs[key] = value } }
从Swift3开始,inout应放在参数类型之前。
func +=<K, V>(lhs: inout [K : V], rhs: [K : V]) { ... }
用法示例:
let firstDict = ["hello" : "world"] let secondDict = ["world" : "hello"] var thirdDict = firstDict + secondDict // ["hello": "world", "world": "hello"] thirdDict += ["hello":"bar", "baz":"qux"] // ["hello": "bar", "baz": "qux", "world": "hello"]