Open cliff357 opened 4 years ago
因為Observable是有一個泛型T的類別,如果不希望這個T永遠是optional的話,就沒辦法指定default value是nil
class Observable<T> { let value: T? = nil // T一定要包成optional才有辦法default nil }
如果真的很想要default nil的話,可以subclass它並且指定optional型別
class NullableObserver<U>: Observable<U?> { override init(value: U? = nil) { super.init(value: value) } } // 就可以這樣 NullableObserver<String>()
當然不太建議這樣做就是了
明白明白,但為什麼不太建議? 是T 不建議 nil 嗎?
因為Observable是有一個泛型T的類別,如果不希望這個T永遠是optional的話,就沒辦法指定default value是nil
如果真的很想要default nil的話,可以subclass它並且指定optional型別
當然不太建議這樣做就是了