首先,让我告诉您,我刚刚开始使用Swift并没有真正看到其中编写过很多代码,但是我看到的所有教程都没有像其他一些语言那样使用private。理解斯威夫特有三种访问控制,Private
,Public
和Internal
,同Internal
是默认值。
我有点困惑,尽管事实上我一般没有很多编程经验,但是我的理解是,在程序中,您将所有内容设为私有,而仅将要公开的属性和方法公开给其他人类。
从Apple Docs
除了提供各种级别的访问控制之外,Swift通过为典型场景提供默认访问级别来减少指定显式访问控制级别的需要。确实,如果您正在编写单一目标应用程序,则可能根本不需要指定显式的访问控制级别。
对我来说,通过将每个属性/方法都保留为默认值(Internal
),基本上就可以访问其他类的值,对吗?
为什么在Swift / Cocoa中,您很少看到Private
不希望程序其他部分具有访问权限的属性使用访问器?
有人能这么善良地解释概念访问器吗?为什么Swift是用这种方式设计的?如果我在上面的假设中做错了,甚至可以更好地纠正我,那么我在OOP中就不需要太多经验了通常,我对访问器的概念感到困惑。
谢谢
更新:今天(2016年1月7日),我观看了视频#3,应用Developing iOS 8 Apps with Swift
了Stanford
大学在iTunes中提供的课程中的MVC应用,并且在24:15分钟内,Paul Hegarty谈到了访问控制,我强烈推荐它。
Swift中的访问控制也是令我惊讶的事情之一,因此您并不孤单。Swift使用的范式与我以前熟悉的C ++,Java和C#完全不同。
Swift的访问控制不是基于类,而是基于源文件和模块。这个想法是,如果您编写一个类,则默认情况下,您应该可以从同一源文件或模块中的另一个类访问其所有成员。如果其他人扩展了您的类,则他们的代码将位于不同的模块和源文件中,因此除非您授予他们访问权限,否则他们将无法访问您的基类成员。
如果考虑一下,访问控制的Swift范例与C ++ / Java一样有意义,只是有所不同。
有关这两种语言之间的差异以及其他差异,请参见http://www.swiftprogrammer.info/swift_vs_cpp.html。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句