此代码示例中“ didSet”的目的是什么?

时间:2019-02-18 22:24:56

标签: swift

有人可以告诉我发布的代码中didSet的目的是什么?我认为didSet应该跟随willSet。我还想知道为什么在letcel初始化之前有一个fah

struct Temperature {
    var fahrenheit = 0.0 {
        didSet {
            let cel = (fahrenheit-32) / 1.8
            if cel != celsius {
                celsius = cel
            }
        }
    }

    var celsius = 0.0 {
        didSet {
            let fah = celsius * 1.8 + 32
            if fah != fahrenheit {
                fahrenheit = fah
            }
        }
    }

    init(fahrenheit:Double) {
        self.fahrenheit = fahrenheit
        self.celsius = (fahrenheit-32) / 1.8
    }

    init(celsius:Double){
        self.celsius = celsius
        self.fahrenheit = celsius * 1.8 + 32
    }
}

var newTemp = Temperature(celsius: 0)
print(String(format:"%.0f",newTemp.fahrenheit))
var temp = Temperature(fahrenheit: 32)
print(String(format:"%.0f",newTemp.celsius))

1 个答案:

答案 0 :(得分:1)

didSet观察摄氏温度何时变化并相应地更新华氏值。

这样,当某人设置摄氏度值并想要以华氏度为单位的值时,他们只需踩下华氏度属性,它将包含相应的值。