计算属性

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