Junior — Middle
Czy można stworzyć własną implementację typu Optional do obsługi potencjalnie brakujących wartości?
sobes.tech AI
Odpowiedź od AI
Tak, można stworzyć własną implementację typu Optional do obsługi wartości, które mogą być nieobecne. W Swift Optional to opakowanie, które zawiera wartość lub nil.
Przykład prostej implementacji własnego Optional:
enum MyOptional<T> {
case some(T)
case none
func unwrap() -> T? {
switch self {
case .some(let value):
return value
case .none:
return nil
}
}
}
// Użycie
let value: MyOptional<Int> = .some(10)
if let unwrapped = value.unwrap() {
print("Wartość: \(unwrapped)")
} else {
print("Wartość nieobecna")
}
W ten sposób można zaimplementować własny typ, który działa na zasadzie Optional, zapewniając bezpieczne obsługiwanie wartości nieobecnych.