Swift private(set)属性的使用

11 min read

Swift中的private(set)关键字用于定义一个只有类的内部可以读和写的属性。它可以在外部进行访问和观察,但只能在类的内部进行修改。这种属性的使用可以保持类和其外部之间的良好封装性,同时允许外部观察类的属性的变化。

下面是一个示例,展示了如何使用private(set)来定义只读或只写属性:

class MyClass {
    private(set) var readOnlyProperty: String = "Hello, world!"
    private var writeOnlyProperty: String = ""

    func setWriteOnlyProperty(value: String) {
        self.writeOnlyProperty = value
    }

    func getWriteOnlyProperty() -> String {
        return self.writeOnlyProperty
    }
}

在这个示例中,我们定义了两个属性:一个只读属性和一个只写属性。只读属性readOnlyProperty被标记为private(set),因此只有类内部可以对其进行写操作;而writeOnlyProperty是完全私有的,只能通过公共的setWriteOnlyProperty()getWriteOnlyProperty()方法进行写和读操作。

以这种方式使用private(set)关键字可以确保类的外部只读或只写其特定属性,同时保护私有的实现细节,以维护类的封装性和安全性。