“访问控制限制了从其他源文件和模块中的代码访问您的部分代码。此功能使您能够隐藏代码的实现细节,并指定可以访问和使用该代码的首选接口。”
Swift 编程语言有 5 种不同的访问说明符。按照从最不严格到最严格的限制顺序:
- open
- public
- internal
- fileprivate
- private
在我们声明一个属性、一个类等的情况下,我们不需要编写访问说明符。默认情况下,访问说明符设置为internal。您可以将特定的访问级别分配给各个类型,例如类、结构、枚举、属性、方法、初始化程序和下标。
我们为什么要使用它们?代码可重用性和安全性,这是访问级别的两个主要概念。
现在让我们仔细看看它们中的每一个。
public:
限制较少的访问级别。通过将实体公开,您可以使其被同一模块内的其他代码部分以及其他模块访问。例如,您将一个库作为 Swift 包集成到项目中;库外项目应该可用的实体必须标记为公共,否则它们将无法访问。稍后再谈。
open:
类似于 public,但它提供了额外的“自由”。
开放类在定义模块之外是可访问和可子类化的。否则,公共类是可访问的,但不能 在定义模块之外进行子类化。此外,在定义模块之外可以访问开放类和公共类成员。并且开放类成员在定义模块之外是可覆盖的,但公共类成员是不可覆盖的。