> 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