Junior
Kas yra wrapped?
sobes.tech AI
Atsakymas iš AI
wrapped - tai reikšmė, kurią turi opcionalus tipas po sėkmingo jo turinio unwrapping. Opcionalus Optional<<Wrapped>> arba saugo Wrapped tipo reikšmę, arba yra nil. Unwrapping leidžia pasiekti Wrapped reikšmę, jei ji egzistuoja.
Pavyzdžiai unwrapping:
-
Priverstinis
unwrapping(Force unwrapping)!:var optionalString: String? = "Hello" let unwrappedString = optionalString! // Gautas reikšmė "Hello" // Jei optionalString == nil, įvyks klaida -
Pasirinktinis susiejimas (
Optional binding)if letarbaguard let:var anotherOptionalString: String? = "World" if let guaranteedString = anotherOptionalString { // Šio bloko viduje, guaranteedString yra `String` (išpakuotas) print(guaranteedString) } -
Pasirinktinis grandymas (
Optional chaining)?:class MyClass { var property: String? } var instance: MyClass? = MyClass() instance?.property = "Value" // Jei instance nėra nil, savybė nustatoma let retrievedValue = instance?.property // retrievedValue bus String? -
Nulio koalescencijos operatorius (
Nil-coalescing operator)??:var yetAnotherOptionalString: String? = nil let defaultValue = yetAnotherOptionalString ?? "Default" // defaultValue bus "Default" (String) // Jei yetAnotherOptionalString turėjo reikšmę, ji būtų naudojama kaip išpakuota
Swift kontekste, wrapped reikšmė yra tiesiog ta, kas buvo "viduje" opcionalo iki jo apdorojimo.