Sobes.tech
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.