[swift-users] How to merge two dictionaries?

Ray Fix rayfix at gmail.com
Fri Nov 11 02:14:16 CST 2016


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 <swift-users at swift.org> 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
> swift-users at swift.org
> https://lists.swift.org/mailman/listinfo/swift-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20161111/e2ff4bde/attachment.html>


More information about the swift-users mailing list