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

标签 swift variables getter

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

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

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

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

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

最佳答案

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

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

关于swift - 为什么我们在 Swift 变量声明中使用关键字 "get"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37235658/

相关文章:

swift - 单例模式和正确使用 Alamofire 的 URLRequestConvertible

ios - Swift:使用私有(private)框架

ios - 从模型的属性中获取可选值

r - 如何删除r中列值中的字符(星号)?

ios - 如何滚动到 viewdidload 时发送的最后一条消息?在 swift 4

python - 将变量直接分配给Python中的函数

javascript - 访问 javascript 中内联函数内所做的变量修改

java - 来自父类(super class)和子类的继承 getter

c++ - 创建宏来为任何 C++ 类生成 getter

java - 将 getter 方法中的名称与用户输入字符串进行比较时出现问题