Sobes.tech
Junior

Mi az a wrapped?

sobes.tech MI

Válasz az MI-től

wrapped - ez az érték egy opcionális típus esetén az, ami az unwrapping után marad. Az Optional<<Wrapped>> vagy tartalmaz egy Wrapped típusú értéket, vagy nil. Az unwrapping lehetővé teszi, hogy hozzáférjünk a Wrapped értékhez, ha az létezik.

Példák az unwrapping-re:

  1. Kényszerített unwrapping (Force unwrapping) !:

    var optionalString: String? = "Hello"
    let unwrappedString = optionalString! // Megkapja az "Hello" értéket
    // Ha optionalString == nil, hibát okoz
    
  2. Opciók kötése (Optional binding) if let vagy guard let:

    var anotherOptionalString: String? = "World"
    if let guaranteedString = anotherOptionalString {
        // Ebben a blokkban, guaranteedString típusú String (kicsomagolt)
        print(guaranteedString)
    }
    
  3. Opciók láncolása (Optional chaining) ?:

    class MyClass { var property: String? }
    var instance: MyClass? = MyClass()
    instance?.property = "Value" // Ha az instance nem nil, a tulajdonság beállításra kerül
    let retrievedValue = instance?.property // retrievedValue String?
    
  4. Nil-kiegyenlítő operátor (Nil-coalescing operator) ??:

    var yetAnotherOptionalString: String? = nil
    let defaultValue = yetAnotherOptionalString ?? "Default" // defaultValue "Default" lesz
    // Ha a yetAnotherOptionalString értékkel rendelkezett, az kerülne használatra
    

A Swift kontextusában a wrapped érték közvetlenül az, ami "belül" volt az opcionálban, mielőtt kezelni kezdtük.