Property observers in Swift

class Cash {
    var sum: Double = 0.0 {
        willSet {
            print("cash sum: \(newValue)")
        }
        didSet {
            print("adds: \(sum - oldValue)")
        }
    }
}

let cash = Cash()
cash.sum = 100
cash.sum *= 3

//output:
//cash sum: 100.0
//adds: 100.0
//cash sum: 300.0
//adds: 200.0