Sobes.tech
Junior

Kas yra wrapped?

sobes.tech AI

Atsakymas iš AI

wrapped - tai reikšmė, kurią turi opcionalus tipas po sėkmingo jo turinio unwrapping. Opcionalus Optional<<Wrapped>> arba saugo Wrapped tipo reikšmę, arba yra nil. Unwrapping leidžia pasiekti Wrapped reikšmę, jei ji egzistuoja.

Pavyzdžiai unwrapping:

  1. Priverstinis unwrapping (Force unwrapping) !:

    var optionalString: String? = "Hello"
    let unwrappedString = optionalString! // Gautas reikšmė "Hello"
    // Jei optionalString == nil, įvyks klaida
    
  2. Pasirinktinis susiejimas (Optional binding) if let arba guard let:

    var anotherOptionalString: String? = "World"
    if let guaranteedString = anotherOptionalString {
        // Šio bloko viduje, guaranteedString yra `String` (išpakuotas)
        print(guaranteedString)
    }
    
  3. Pasirinktinis grandymas (Optional chaining) ?:

    class MyClass { var property: String? }
    var instance: MyClass? = MyClass()
    instance?.property = "Value" // Jei instance nėra nil, savybė nustatoma
    let retrievedValue = instance?.property // retrievedValue bus String?
    
  4. Nulio koalescencijos operatorius (Nil-coalescing operator) ??:

    var yetAnotherOptionalString: String? = nil
    let defaultValue = yetAnotherOptionalString ?? "Default" // defaultValue bus "Default" (String)
    // Jei yetAnotherOptionalString turėjo reikšmę, ji būtų naudojama kaip išpakuota
    

Swift kontekste, wrapped reikšmė yra tiesiog ta, kas buvo "viduje" opcionalo iki jo apdorojimo.