> 14 Dec. 2017 17:52 Inder Kumar Rathore . via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> class MyClass {
>   private var myDict = [String : String]()
>   
>   func addMemebr() {
>     self.myDict["key"] = "value" // Ok for me
>   }
>   
>   func anotherFunc() {
>     self.myDict = [String : String]() // Not okay for me, I don't want any 
> code to do this within the class
>   }
> }

But in Swift, since myDict is a Dictionary, it is *one* value, so it doesn't 
make sense to allow one but not the other. Also, since it is one value, you 
will not be able to detect the difference between setting a part of a 
dictionary and the whole dictionary. If Dictionary had been a class, there 
would be a non-changing reference, but there isn't in this case. Conceptually, 
the whole dictionary is copied every time you set it or assign it.

/Magnus

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

Reply via email to