使读取公共写入私有变量的不同方法?

Posted

技术标签:

【中文标题】使读取公共写入私有变量的不同方法?【英文标题】:Different ways of making read public write private variables in swift? 【发布时间】:2017-07-14 03:58:50 【问题描述】:

我完成了一个在线课程,该课程教我们将类的属性编写为:

class bar 
     private var _foo:Int

     var foo 
         return _foo
          

从那以后我见过

class bar 
     private (set) var foo:Int 

这两种写东西的方式有什么区别吗?哪一种是最好的做法?

【问题讨论】:

【参考方案1】:

第二个选项更简单、更清晰,它的额外好处是仍然能够在属性上添加getsetwillSetdidSet 块,同时仍然具有明确定义的范围getter 和 setter。当然你仍然可以将它们添加到私有属性中,但我认为代码开始变得不那么可读了。

另请注意,第一个选项是使用私有存储属性的公共只读计算属性。

第二个选项可以是计算属性或存储属性。

【讨论】:

以上是关于使读取公共写入私有变量的不同方法?的主要内容,如果未能解决你的问题,请参考以下文章

类变量:公共访问只读,但私有访问读/写

如何在公共方法中创建私有变量

不是公共或私有的变量-Java

是否可以在私有方法中定义公共变量?

Java子类访问父类的私有成员变量

Amazon s3:“阻止公共访问”设置以允许使用签名 URL 进行公共读取私有写入