Sobes.tech
Junior

Co je wrapped?

sobes.tech AI

Odpověď od AI

wrapped - je hodnota typu volitelného (optional) po úspěšném unwrapping jeho obsahu. Volitelný Optional<<Wrapped>> buď obsahuje hodnotu typu Wrapped, nebo je nil. Unwrapping umožňuje přístup k hodnotě Wrapped, pokud existuje.

Příklady unwrapping:

  1. Vynucené unwrapping (Force unwrapping) !:

    var optionalString: String? = "Hello"
    let unwrappedString = optionalString! // Získá hodnotu "Hello"
    // Pokud je optionalString == nil, dojde k pádu programu
    
  2. Volitelné přiřazení (Optional binding) if let nebo guard let:

    var anotherOptionalString: String? = "World"
    if let guaranteedString = anotherOptionalString {
        // Uvnitř tohoto bloku je guaranteedString typu String (odbalený)
        print(guaranteedString)
    }
    
  3. Volitelné řetězení (Optional chaining) ?:

    class MyClass { var property: String? }
    var instance: MyClass? = MyClass()
    instance?.property = "Value" // Pokud instance není nil, vlastnost je nastavena
    let retrievedValue = instance?.property // retrievedValue bude typu String?
    
  4. Operátor nulové koalescencie (Nil-coalescing operator) ??:

    var yetAnotherOptionalString: String? = nil
    let defaultValue = yetAnotherOptionalString ?? "Default" // defaultValue bude "Default" (String)
    // Pokud by yetAnotherOptionalString měl hodnotu, použila by se jako odbalená
    

V kontextu Swift je wrapped hodnota přímo to, co bylo "uvnitř" volitelného před jeho zpracováním.