[swift-evolution] constant var

BJ Homer bjhomer at gmail.com
Tue Dec 12 09:49:18 CST 2017


If I understand correctly, you want to be able to modify myDict from within MyClass, but not from outside it. In that case, you’re looking for private(set).

class MyClass {
  private(set) var myDict = [String : String]()
}

-BJ

> On Dec 12, 2017, at 12:34 AM, Inder Kumar Rathore . via swift-evolution <swift-evolution at swift.org> wrote:
> 
> Hi All,
> Today I was writing code and faced a situation where I need to make a instance variable a const i.e. it shouldn't accept new values from anywhere but the problem is that I want it's content to be mutable.
> 
> e.g.
> 
> class MyClass {
>   var myDict = [String : String]()
> }
> 
> 
> I want above variable to be constant and if I make it like below
> 
> class MyClass {
>   let myDict = [String : String]()
> }
> 
> Then I cann't add key/value in the myDict like
> 
>    self.myDict["name"] = "Rathore"
> 
> 
> I know swift and couldn't find anything related to this.
> 
> Can anybody help me?
> 
> 
> If there is no such method of doing it then I would suggest to either use a syntax like
> 
> class MyClass {
>   const var myDict = [String : String]()
> }
> 
> I'm not using final here since that make a var not overridable.
> 
> 
> 
> -- 
> Best regards,
> Inder Kumar Rathore
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20171212/65b4a663/attachment.html>


More information about the swift-evolution mailing list