kat*_*000 5 dictionary concatenation swift
Swift给了我们很多新的能力,比如(最后!)连接字符串甚至是数组.但不支持词典.连接字典的唯一方法是为它们重载+操作吗?
let string = "Hello" + "World" // "HelloWorld"
let array = ["Hello"] + ["World"] // ["Hello", "World"]
let dict = ["1" : "Hello"] + ["2" : "World"] // error =(
Run Code Online (Sandbox Code Playgroud)
Yuc*_*ong 15
像这样使用它:
把它放在任何地方,例如Dictionary + Extension.swift:
func +<Key, Value> (lhs: [Key: Value], rhs: [Key: Value]) -> [Key: Value] {
var result = lhs
rhs.forEach{ result[$0] = $1 }
return result
}
Run Code Online (Sandbox Code Playgroud)现在你的代码正常工作
let string = "Hello" + "World" // "HelloWorld"
let array = ["Hello"] + ["World"] // ["Hello", "World"]
let dict = ["1" : "Hello"] + ["2" : "World"] // okay =)
Run Code Online (Sandbox Code Playgroud)编辑:
正如@Raphael所建议的那样,+符号意味着计算是可交换的.请注意,事实并非如此.例如,[2: 3] + [2: 4]vs 的结果[2: 4] + [2: 3]不一样.
Ada*_*dam 11
这是不可能的,因为第二个字典中可能存在匹配的键.但您可以手动执行此操作,在这种情况下将替换字典中的值.
var dict = ["1" : "Hello"]
let dict2 = ["2" : "World"]
for key in dict2.keys {
dict[key] = dict2[key]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10019 次 |
| 最近记录: |