Sobes.tech
Junior

Šta je wrapped?

sobes.tech АИ

Одговор од АИ

wrapped - то је вредност типа опционал након успешног unwrapping-а његовог садржаја. Опционал Optional<<Wrapped>> или садржи вредност типа Wrapped, или је nil. Unwrapping омогућава приступ вредности Wrapped ако она постоји.

Примери unwrapping-а:

  1. Принудно unwrapping (Force unwrapping) !:

    var optionalString: String? = "Hello"
    let unwrappedString = optionalString! // Добија вредност "Hello"
    // Ако је optionalString == nil, доћи ће до грешке
    
  2. Опционално повезивање (Optional binding) if let или guard let:

    var anotherOptionalString: String? = "World"
    if let guaranteedString = anotherOptionalString {
        // Унутар овог блока, guaranteedString је типa String (разглобљен)
        print(guaranteedString)
    }
    
  3. Опционално цепање (Optional chaining) ?:

    class MyClass { var property: String? }
    var instance: MyClass? = MyClass()
    instance?.property = "Value" // Ако `instance` није nil, својство се поставља
    let retrievedValue = instance?.property // retrievedValue ће бити String?
    
  4. Оператор за нулску коалесценцију (Nil-coalescing operator) ??:

    var yetAnotherOptionalString: String? = nil
    let defaultValue = yetAnotherOptionalString ?? "Default" // defaultValue ће бити "Default" (String)
    // Ако је yetAnotherOptionalString имао вредност, она би била коришћена као разглобљена
    

У контексту Swift, wrapped вредност је директно оно што је било "унутра" у опционалу пре његове обраде.