Sobes.tech
Junior

Čo je wrapped?

sobes.tech AI

Odpoveď od AI

wrapped - je hodnota typu voliteľného (optional) po úspešnom unwrapping-u jeho obsahu. Voliteľný Optional<<Wrapped>> buď obsahuje hodnotu typu Wrapped, alebo je nil. Unwrapping umožňuje prístup k hodnote Wrapped, ak existuje.

Príklady unwrapping-u:

  1. Vynútené unwrapping (Force unwrapping) !:

    var optionalString: String? = "Hello"
    let unwrappedString = optionalString! // Získa hodnotu "Hello"
    // Ak je optionalString == nil, dôjde k chybe
    
  2. Voliteľné viazanie (Optional binding) if let alebo guard let:

    var anotherOptionalString: String? = "World"
    if let guaranteedString = anotherOptionalString {
        // Vo vnútri tohto bloku je guaranteedString typu String (odbalený)
        print(guaranteedString)
    }
    
  3. Voliteľné reťazenie (Optional chaining) ?:

    class MyClass { var property: String? }
    var instance: MyClass? = MyClass()
    instance?.property = "Value" // Ak `instance` nie je nil, vlastnosť sa nastaví
    let retrievedValue = instance?.property // retrievedValue bude typu String?
    
  4. Operátor nulovej koalescencie (Nil-coalescing operator) ??:

    var yetAnotherOptionalString: String? = nil
    let defaultValue = yetAnotherOptionalString ?? "Default" // defaultValue bude "Default" (String)
    // Ak by yetAnotherOptionalString mal hodnotu, použila by sa ako odbalená
    

V kontexte Swift je wrapped hodnota priamo to, čo bolo "vnútri" opčionalu pred jeho spracovaním.