Junior
Co to jest wrapped?
sobes.tech AI
Odpowiedź od AI
wrapped - to wartość typu opcjonalnego po pomyślnym wyodrębnieniu (unwrapping) jego zawartości. Opcjonalny Optional<<Wrapped>> przechowuje albo wartość typu Wrapped, albo nil. Wyodrębnienie pozwala uzyskać dostęp do wartości Wrapped, jeśli istnieje.
Przykłady wyodrębniania:
-
Wymuszone wyodrębnianie (
Force unwrapping)!:var optionalString: String? = "Hello" let unwrappedString = optionalString! // Uzyskuje wartość "Hello" // Jeśli optionalString == nil, wystąpi błąd -
Przyłączanie opcjonalne (
Optional binding)if letlubguard let:var anotherOptionalString: String? = "World" if let guaranteedString = anotherOptionalString { // Wewnątrz tego bloku, guaranteedString jest typu String (odpakowany) print(guaranteedString) } -
Łańcuch opcjonalny (
Optional chaining)?:class MyClass { var property: String? } var instance: MyClass? = MyClass() instance?.property = "Value" // Jeśli instance nie jest nil, właściwość jest ustawiana let retrievedValue = instance?.property // retrievedValue będzie typu String? -
Operator koalescencji null (
Nil-coalescing operator)??:var yetAnotherOptionalString: String? = nil let defaultValue = yetAnotherOptionalString ?? "Default" // defaultValue będzie "Default" (String) // Jeśli yetAnotherOptionalString miałoby wartość, użyto by jej jako odpakowanej.
W kontekście Swift, wartość wrapped to bezpośrednio to, co znajdowało się "wewnątrz" opcjonalnego przed jego obsługą.