TheGreatWall
TheGreatWall copied to clipboard
發現observable 一定要有default value, 請問可以default nil 嗎?
因為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 嗎?