为什么我们在 Swift 变量声明中使用关键字“get”?

Luc*_*fer 5 variables getter swift

这听起来可能很愚蠢,但我不明白为什么程序员在 Swift 中声明变量如下:

class Person: NSObject {
    var name: String { get }
}
Run Code Online (Sandbox Code Playgroud)

为什么使用关键字“get”?为什么会遗漏“设置”?我以为我们是这样使用它们的:

class Person: NSObject {
    var name: String {
        get {
          // getter
        }
        set {
          // setter
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这可能是一个垃圾邮件问题,但我对{ get }的理论定义感兴趣

小智 4

诸如此类的句子var name: String { get }通常用于协议而不是类中。在协议中,这意味着实现必须有一个 String 类型的变量,该变量至少应该是只读的(因此是get)。如果大括号位是{ get set }变量,则该变量将被读写。

实际上,根据伯爵格雷的回答,var name: String { get }不会在类中编译。