ios – 为什么在Swift中使用私有属性/方法并不常见

前端之家收集整理的这篇文章主要介绍了ios – 为什么在Swift中使用私有属性/方法并不常见前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
首先让我告诉你,我刚刚开始使用 @L_301_0@并且没有真正看到很多代码写在其中但是我看到的所有教程都不像其他语言那样使用私有和我了解Swift有三个访问控制,私有,公共和内部,内部是默认.

我有点困惑,尽管事实上我一般没有很多编程经验,但我的理解是,在一个程序中,你将一切都设为私有,只公开你想要暴露给其他人的属性方法.类.

来自Apple Docs

In addition to offering varIoUs levels of access control,Swift
reduces the need to specify explicit access control levels by
providing default access levels for typical scenarios. Indeed,if you
are writing a single-target app,you may not need to specify explicit
access control levels at all.

通过将每个属性/方法保留为默认值(内部),您基本上可以访问其他类的值,对吗?

为什么在Swift / Cocoa中你很少看到私有访问器用于你不希望程序的其他部分访问的属性

有人可以如此善良并解释一般的概念访问器吗?为什么Swift以这种方式设计,或者甚至更好地纠正我,如果我在上面的假设我错了,再次我没有太多的OOP经验我可能会对访问者的概念感到困惑.

谢谢

更新:今天(2016年7月1日)我观看了视频#3从斯坦福大学在iTunes中提供的Swift开发iOS 8应用程序的应用程序中的MVC和24分钟时分24:15 Paul Hegarty谈到访问控制,我强烈推荐它.

解决方法

Swift中的访问控制也让我感到惊讶,所以你并不孤单. Swift使用的范例与我之前熟悉的C,Java,C#使用的范例完全不同.

Swift的访问控制不是基于类,而是基于源文件和模块.我们的想法是,如果您编写一个类,那么默认情况下您应该可以访问同一源文件或模块中其他类的所有成员.如果其他人扩展了您的类,他们的代码将位于不同的模块和源文件中,因此除非您授予他们访问权限,否则他们将无法访问您的基类成员.

如果你考虑一下,Swift的访问控制范式与C / Java一样有意义,它只是不同.

有关此语言和其他语言之间的差异,请参阅http://www.swiftprogrammer.info/swift_vs_cpp.html.

猜你在找的iOS相关文章