> On May 18, 2016, at 11:03 AM, Artyom Goncharov via swift-users 
> <swift-users@swift.org> wrote:
> 
> Yes, of course I can use API method but this kind of behaviour for subscript 
> operator seems inconsistent(or even magical) to me because it is possible to 
> initialise a dictionary with nil without casting it. Though nil is a special 
> case it is still a value in the set of all values of a T? type, am I wrong?

There are a few ways to assign nil to a dictionary entry.  First of all

dictionary[“key”] = nil

always removes “key" from dictionary.  To assign a nil value use one of:

dictionary[“key”] = Optional(nil)
dictionary[“key”] = .Some(nil)
dictionary[“key”]? = nil

That last only works if “key” already exists in the dictionary, i.e. you are 
replacing the existing value.  The first two will add a dictionary entry if 
necessary.

I suspect now that you’ve been bitten by this you will remember it forever :)

Marc
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to