有人可以告诉我发布的代码中didSet
的目的是什么?我认为didSet
应该跟随willSet
。我还想知道为什么在let
和cel
初始化之前有一个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))
答案 0 :(得分:1)
didSet
观察摄氏温度何时变化并相应地更新华氏值。
这样,当某人设置摄氏度值并想要以华氏度为单位的值时,他们只需踩下华氏度属性,它将包含相应的值。