Different from stored properties, computed properties are built with a getter and a setter, performing necessary code when accessed and set. Computed properties must define a type:
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..."
A read-only computed property is still declared with a var
:
var circumference: Double {
get {
return pi * radius * 2
}
}
Read-only computed properties can be shortened to exclude get
:
var circumference: Double {
return pi * radius * 2
}