Junior
Τι είναι το wrapped;
sobes.tech AI
Απάντηση από AI
wrapped - είναι η τιμή ενός προαιρετικού τύπου μετά από επιτυχημένη αποσυμπίεση (unwrapping) του περιεχομένου του. Το προαιρετικό Optional<<Wrapped>> περιέχει είτε μια τιμή τύπου Wrapped είτε nil. Η αποσυμπίεση επιτρέπει την πρόσβαση στην τιμή Wrapped αν αυτή υπάρχει.
Παραδείγματα αποσυμπίεσης:
-
Επιβεβλημένη αποσυμπίεση (
Force unwrapping)!:var optionalString: String? = "Hello" let unwrappedString = optionalString! // Παίρνει την τιμή "Hello" // Αν το optionalString == nil, θα προκληθεί σφάλμα -
Επιλογική δέσμευση (
Optional binding)if letήguard let:var anotherOptionalString: String? = "World" if let guaranteedString = anotherOptionalString { // Μέσα σε αυτό το μπλοκ, το guaranteedString είναι τύπου String (αποσυμπιεσμένο) print(guaranteedString) } -
Επιλογική αλυσίδα (
Optional chaining)?:class MyClass { var property: String? } var instance: MyClass? = MyClass() instance?.property = "Value" // Αν το instance δεν είναι nil, η ιδιότητα ορίζεται let retrievedValue = instance?.property // retrievedValue θα είναι String? -
Operator συγχώνευσης nil (
Nil-coalescing operator)??:var yetAnotherOptionalString: String? = nil let defaultValue = yetAnotherOptionalString ?? "Default" // defaultValue θα είναι "Default" (String) // Αν το yetAnotherOptionalString είχε τιμή, θα χρησιμοποιούνταν ως αποσυμπιεσμένο
Στο πλαίσιο της Swift, η τιμή wrapped είναι άμεσα αυτή που βρισκόταν "μέσα" στο προαιρετικό πριν από την επεξεργασία του.