访问控制
Swift 的访问控制有三类,分别为:公开(Public),内部(Internal),私有(Private)。其可见性如下表:
可见性 定义文件 所在模块 引入所定义模块的文件
公开 ✓ ✓ ✓
------------------------------------
内部 ✓ ✓
------------------------------------
私有 ✓
------------------------------------
公开(Public)
可见性几乎无限制。可以访问自己模块或应用中源文件里的任何实体,别人也可以访问引入该模块中源文件里的所有实体。 语法: public class myPublicTranslator { } public func translateSomeText(inputText: String) -> String { }
内部(Internal)
默认的访问控制权限。可以访问自己模块或应用中源文件里的任何实体,但是别人不能访问该模块中源文件里的实体。
私有(Private)
可见性最少。只能在当前源文件中使用的实体,称为私有实体。使用private级别,可以用作隐藏某些功能的实现细节。 语法: private let implementationDetail = "A Secret"
三者关系
- 一个public访问级别的变量,不能将它的类型定义为internal和private的类型。因为变量可以被任何人访问,但是定义它的类型不可以,所以这样就会出现错误。
- 函数的访问级别不能高于它的参数、返回类型的访问级别。因为如果函数定义为public而参数或者返回类型定义为internal或private,就会出现函数可以被任何人访问,但是它的参数和返回类型不可以,同样会出现错误。
参考:http://www.codingexplorer.com/access-control-swift/