For example, you might want to merge values:
let d1 = ["Apples": 20, "Oranges": 13]
let d2 = ["Oranges": 3, "Cherries": 9]
let d3 = [d1, d2].reduce([String : Int]()) { acc, d in
var dx = acc
for entry in d {
let key = entry.key
guard dx[key] == nil else {
dx[key]! += entry.value
continue
}
dx[entry.key] = entry.value
}
return dx
}
print(d3) // ["Cherries": 9, "Apples": 20, "Oranges": 16]
On Fri, Nov 11, 2016 at 9:14 AM, Ray Fix via swift-users <
[email protected]> wrote:
> Hi Mr Bee,
>
> The reason I don’t think it is provided is because it is difficult to know
> what to do when keys collide. You could easily write such a thing and
> decide your own policy. For example:
>
> let d1 = ["Apples": 20, "Oranges": 13]
> let d2 = ["Oranges": 3, "Cherries": 9]
>
> extension Dictionary {
> func merged(with another: [Key: Value]) -> [Key: Value] {
> var result = self
> for entry in another {
> result[entry.key] = entry.value
> }
> return result
> }
> }
>
> let result = d1.merged(with: d2)
>
>
> On Nov 11, 2016, at 12:05 AM, Mr Bee via swift-users <
> [email protected]> wrote:
>
> Hi,
>
> I'm using Swift v3 on an El Capitan machine. I want to merge a dictionary
> into another compatible dictionary. However, I couldn't find addEntries
> function in the dictionary instance, like it was on NSMutableDictionary (
> https://developer.apple.com/reference/foundation/nsmutabledictionary).
>
> Does that mean that Swift standard library won't provide such similar
> function for native Swift dictionary? Or is there any other way of doing
> that natively? I mean using the built-in Swift's native dictionary function
> (https://developer.apple.com/reference/swift/dictionary), no need to
> write a custom function, or bridging to NSMutableDictionary.
>
> Thank you.
>
> Regards,
>
> –Mr Bee
>
> _______________________________________________
> swift-users mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-users
>
>
>
> _______________________________________________
> swift-users mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-users
>
>
_______________________________________________
swift-users mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-users