Getter 计算 属性 与 returns 值的变量
Getter computed property vs. variable that returns a value
getter 计算的 属性 和 returns 值的变量之间有区别吗?例如。下面两个变量有区别吗?
var NUMBER_OF_ELEMENTS1: Int {
return sampleArray.count
}
var NUMBER_OF_ELEMENTS2: Int {
get {
return sampleArray.count
}
}
它们是相同的,因为它们都定义了一个只读计算 属性。但前者更可取,因为它比后者更短且更易读。
具有 getter 和 setter 的计算机 属性 具有以下形式:
var computedProperty: Int {
get {
return something // Implementation can be something more complicated than this
}
set {
something = newValue // Implementation can be something more complicated than this
}
}
在某些情况下不需要 setter,因此计算的 属性 声明为:
var computedProperty: Int {
get {
return something // Implementation can be something more complicated than this
}
}
请注意,计算的 属性 必须始终有一个 getter - 因此不可能只用 setter 声明一个。
由于经常发生计算属性只有 getter,Swift 让我们通过省略 get
块来简化它们的实现,使代码更易于编写和更容易阅读:
var computedProperty: Int {
return something // Implementation can be something more complicated than this
}
两个版本在语义上没有区别,所以无论你使用哪个,结果都是一样的。
getter 计算的 属性 和 returns 值的变量之间有区别吗?例如。下面两个变量有区别吗?
var NUMBER_OF_ELEMENTS1: Int {
return sampleArray.count
}
var NUMBER_OF_ELEMENTS2: Int {
get {
return sampleArray.count
}
}
它们是相同的,因为它们都定义了一个只读计算 属性。但前者更可取,因为它比后者更短且更易读。
具有 getter 和 setter 的计算机 属性 具有以下形式:
var computedProperty: Int {
get {
return something // Implementation can be something more complicated than this
}
set {
something = newValue // Implementation can be something more complicated than this
}
}
在某些情况下不需要 setter,因此计算的 属性 声明为:
var computedProperty: Int {
get {
return something // Implementation can be something more complicated than this
}
}
请注意,计算的 属性 必须始终有一个 getter - 因此不可能只用 setter 声明一个。
由于经常发生计算属性只有 getter,Swift 让我们通过省略 get
块来简化它们的实现,使代码更易于编写和更容易阅读:
var computedProperty: Int {
return something // Implementation can be something more complicated than this
}
两个版本在语义上没有区别,所以无论你使用哪个,结果都是一样的。