計算屬性
與儲存的屬性不同,計算屬性是使用 getter 和 setter 構建的,在訪問和設定時執行必要的程式碼。計算屬性必須定義型別:
var pi = 3.14
class Circle {
var radius = 0.0
var circumference: Double {
get {
return pi * radius * 2
}
set {
radius = newValue / pi / 2
}
}
}
let circle = Circle()
circle.radius = 1
print(circle.circumference) // Prints "6.28"
circle.circumference = 14
print(circle.radius) // Prints "2.229..."
仍然使用 var
宣告只讀計算屬性:
var circumference: Double {
get {
return pi * radius * 2
}
}
可以縮短只讀計算屬性以排除 get
:
var circumference: Double {
return pi * radius * 2
}