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

Why do we use the keyword "get" in Swift variables declaration?

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

class Person: NSObject {
    var name: String { get }
}

为什么使用关键字“get”?为什么错过了“设置”?我以为我们是这样使用它们的:

class Person: NSObject {
    var name: String {
        get {
          // getter
        }
        set {
          // setter
        }
    }
}

这可能是一个垃圾问题,但我对 { get }

的理论定义很感兴趣

第一个代码示例严格来说没有意义。你不要在 class.. 中声明这样的变量(你在这样的协议中这样做。)

第二个是计算 属性 的示例,但缺少 getter 和 setter 实现。 (这似乎至少是暗示的,所以我不会反对代码示例的有效性。)

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

实际上根据 Earl Gray 的回答,var name: String { get } 不会在 class.

中编译