Skip to content

Instantly share code, notes, and snippets.

@naoty
Last active February 25, 2016 14:37
Show Gist options
  • Save naoty/a76f10017279838f3a0a to your computer and use it in GitHub Desktop.
Save naoty/a76f10017279838f3a0a to your computer and use it in GitHub Desktop.
extension Dictionary {
func merged(another: [Key: Value]) -> Dictionary {
var result: [Key: Value] = [:]
for (key, value) in self {
result[key] = value
}
for (key, value) in another {
result[key] = value
}
return result
}
}
extension Dictionary where Value: RangeReplaceableCollectionType {
func merged(another: [Key: Value]) -> [Key: Value] {
var result: [Key: Value] = [:]
for (key, value) in self {
result[key] = value
}
for (key, value) in another {
if let collection = result[key] {
result[key] = collection + value
} else {
result[key] = value
}
}
return result
}
}
let parameter1 = ["id": "1"]
let parameter2 = ["name": "naoty"]
parameter1.merged(parameter2) //=> ["id": "1", "name": "naoty"]
let sort1 = ["sort": ["id"]]
let sort2 = ["sort": ["name"]]
sort1.merged(sort2) //=> ["sort": ["id", "name"]]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment