与存储的属性不同,计算的属性是使用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
}