Rozpakowywanie za pomocą if let
Część sekcji Podstawy ścieżki Swift w Coddy. Lekcja 12 z 86.
Aby bezpiecznie uzyskać dostęp do wartości wewnątrz wartości opcjonalnej, używamy if let: techniki zwanej opcjonalnym wiązaniem. Sprawdza ona, czy wartość opcjonalna zawiera jakąś wartość, a jeśli tak, rozpakowuje ją do tymczasowej stałej.
var username: String? = "Swift_Dev"
if let name = username {
print("Welcome, \(name)")
} else {
print("No username found")
}
// Witaj, Swift_DevTutaj if let sprawdza, czy username ma wartość. Ponieważ ją ma, wartość zostaje rozpakowana do name, która istnieje tylko wewnątrz bloku if. Gdyby username miało wartość nil, zamiast tego wykonałby się blok else.
var age: Int? = nil
if let unwrappedAge = age {
print("Age is \(unwrappedAge)")
} else {
print("Age not provided")
}
// Nie podano wiekuPonieważ age ma wartość nil, warunek nie jest spełniony i wykonywany jest blok else. Zapobiega to awariom, które wystąpiłyby, gdybyśmy próbowali bezpośrednio użyć brakującej wartości.
Wyzwanie
ŁatwyOtrzymujesz następującą zmienną:
var nickname: String? = "CoddyLearner"Użyj if let, aby bezpiecznie rozpakować nickname. Jeśli zawiera wartość, wypisz Hello, [value]!, gdzie [value] to rozpakowany pseudonim. Jeśli ma wartość nil, wypisz No nickname set.
Spróbuj swoich sił
var nickname: String? = "CoddyLearner"
// TODO: Napisz swój kod poniżej
// Użyj if let, aby bezpiecznie rozpakować nickname
// Jeśli zawiera wartość, wypisz "Hello, [value]!"
// Jeśli ma wartość nil, wypisz "No nickname set"Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory, część 1
Operatory arytmetyczneOperator moduloPrzypisanie złożonePodsumowanie — prosta matematykaOperatory porównania7Podstawowe wejście/wyjście
Funkcja printInterpolacja ciągów znakówWejście ReadLineKonwersja typówPowtórka – do 120Powtórka – prawda czy fałsz10Funkcje
Deklarowanie funkcjiParametry i argumentyWartości zwracaneEtykiety argumentówPowtórka – funkcja SigmaPowtórka – funkcja walidującaWartości domyślne2Zmienne
let vs varAdnotacje typówLiczbyŁańcuch znakówWartość logicznaKonwencje nazewnictwaPodsumowanie – inicjalizacja zmiennych5Operatory, część 2
Operatory logiczne, część 1Operatory logiczne, część 2Powtórka – prosta logikaOperatory logiczne, część 3Operator trójargumentowy8Kalkulator podziału rachunku
Wiadomość powitalnaPobieranie danych wejściowych11FizzBuzz z niespodzianką
Omówienie gryFunkcja FizzBuzz3Typy opcjonalne
Czym są typy opcjonalneRozpakowywanie za pomocą if letGuard letOperator nil-coalescingPodsumowanie — bezpieczne rozpakowywanie6Podejmowanie decyzji
Instrukcja ifIf - ElsePowtórka – prosty kalkulatorInstrukcja switchSwitch z zakresami9Pętle
Pętla for-inPętla whilePętla repeat-whileInstrukcja breakInstrukcja continuePowtórzenie – silniaZakresy w pętlachPętla zagnieżdżonaPowtórzenie – dynamiczne dane wejściowePoćwicz samodzielnie: Edytor online Swift