这听起来可能很愚蠢,但我不明白为什么程序员会在 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/