Sobes.tech
Junior

Kas ir wrapped?

sobes.tech AI

Atbilde no AI

wrapped ir opcijas vērtības tips pēc tās satura veiksmīgas iegūšanas (unwrapping). Opcija Optional<<Wrapped>> vai nu glabā Wrapped tipa vērtību, vai ir nil. Iegūšana ļauj piekļūt Wrapped vērtībai, ja tā pastāv.

Iegūšanas piemēri:

  1. Piespiedu iegūšana (Force unwrapping) !:

    var optionalString: String? = "Hello"
    let unwrappedString = optionalString! // Saņem vērtību "Hello"
    // Ja optionalString == nil, notiks crash
    
  2. Opcijas sasaistīšana (Optional binding) if let vai guard let:

    var anotherOptionalString: String? = "World"
    if let guaranteedString = anotherOptionalString {
        // Šajā blokā guaranteedString ir `String` tips (unwrapped)
        print(guaranteedString)
    }
    
  3. Opcijas ķēde (Optional chaining) ?:

    class MyClass { var property: String? }
    var instance: MyClass? = MyClass()
    instance?.property = "Value" // Ja instance nav nil, īpašība tiek iestatīta
    let retrievedValue = instance?.property // retrievedValue būs `String?`
    
  4. Null-koalescences operators ??:

    var yetAnotherOptionalString: String? = nil
    let defaultValue = yetAnotherOptionalString ?? "Default" // defaultValue būs "Default" (String)
    // Ja yetAnotherOptionalString būtu ar vērtību, tā tiktu izmantota kā unwrapped.
    

Swift kontekstā wrapped vērtība ir tieši tā, kas atradās "iekšā" opcijā pirms tās apstrādes.