AView(value: Box<Double>(.nan))
を AView(value: Double.nan)
に変えるだけで参照型を値型にして試せるので。Double.nan
のときは変更が反映されません。Equatable
でないクラス Container
↓を作って final class Container<Value: CustomStringConvertible>: CustomStringConvertible { let value: Value init(_ value: Value) { self.value = value } var description: String { value.description } }
AView(value: Container<Double>(42))
でも AView(value: Container<Double>(.nan))
でも常に更新が反映されました。