Я хочу написать расширение Optional
для любых типов.
Мой код для целого числа:
extension Optional where Wrapped == Int {
func ifNil<T>(default: T) -> T {
if self != nil {
return self as! T
}
return value
}
}
var tempInt: Int?
tempInt.ifNil(default: 2) // returns 2
tempInt = 5
tempInt.ifNil(default: 2) // returns 5
Он работает, но это Optional(Int)
расширение (Optional where Wrapped == Int
), я хочу использовать это расширение для любых типов, таких как Date
, String
, Double
и т. Д.
Ваши предложения?
isNil(value: 2)
действительно похоже, что он должен проверять, является ли2
nil
, и возвращатьBool
. Лучшее название метода должно включать такие термины, какor
,default
,else
, напримерunwrapped(orDefault: 2)
- person Alexander   schedule 27.07.2019