跳到主要内容

Swift 权限修饰符的概念 ?

参考答案:

在 Swift 编程语言中,权限修饰符(Access Modifiers)用于指定类、结构体、枚举、属性、方法、下标以及初始化器等代码实体的可见性和访问权限。它们决定了哪些部分的代码可以访问和使用这些实体。

Swift 提供了以下五种权限修饰符:

  1. open

    • 可以在定义它的模块外部被访问和子类化。
    • 通常用于框架和库的公开接口。
  2. public

    • 可以在定义它的模块外部被访问,但不能被子类化(对于类和类成员)。
    • 是框架和库公开接口的首选修饰符。
  3. internal

    • 只能在定义它的源文件的模块内部被访问。
    • 如果没有显式指定权限修饰符,那么默认就是 internal
  4. fileprivate

    • 只能在定义它的源文件内部被访问。
    • 它比 internal 更为限制,即使在同一模块内的其他文件也不能访问。
  5. private

    • 只能在定义它的封闭大括号(如类、结构体或枚举)内部被访问。
    • 是最严格的权限修饰符。

使用权限修饰符可以帮助你创建更加安全和结构化的代码库,确保只有应该访问某些功能的代码部分能够访问它们。同时,它也有助于封装和隐藏实现细节,从而提高代码的可维护性和可扩展性。

例如:

public class MyClass {
    public var publicProperty: Int
    private var privateProperty: String
    
    public init(publicProperty: Int) {
        self.publicProperty = publicProperty
        self.privateProperty = "Private Value"
    }
    
    private func privateMethod() {
        // ...
    }
}

在上面的例子中,MyClass 是一个 public 类,它的 publicProperty 属性也是 public 的,所以可以在类的外部访问。但是 privateProperty 属性和 privateMethod 方法都是 private 的,只能在 MyClass 内部访问。