Konwersja typów
Część sekcji Podstawy ścieżki Swift w Coddy. Lekcja 34 z 86.
Ponieważ readLine() zwraca wartość typu String?, często trzeba przekonwertować ten ciąg na liczbę, aby wykonać obliczenia. Swift wymaga jawnej konwersji typu. Nie zamieni automatycznie ciągu na liczbę całkowitą ani zmiennoprzecinkową.
Aby przekonwertować ciąg znaków na liczbę całkowitą, użyj inicjalizatora Int(). Ponieważ konwersja może się nie powieść (ciąg znaków może zawierać litery zamiast cyfr), zwraca on wartość opcjonalną:
let input = "42"
if let number = Int(input) {
print(number + 10) // Wynik: 52
}W przypadku liczb dziesiętnych użyj Double():
let priceString = "19.99"
if let price = Double(priceString) {
print(price * 2) // Wynik: 39.98
}Jest to szczególnie przydatne podczas łączenia readLine() z operacjami numerycznymi. Możesz połączyć rozpakowywanie:
if let input = readLine(), let age = Int(input) {
print("Next year you'll be \(age + 1)")
}Przecinek w instrukcji if let oznacza, że oba warunki muszą być spełnione: dane wejściowe muszą istnieć i dać się przekonwertować na liczbę całkowitą.
Wyzwanie
ŁatwyOdczytaj dwa wejścia: liczbę dziesiętną zapisaną jako ciąg znaków oraz liczbę całkowitą zapisaną jako ciąg znaków. Przekonwertuj je na odpowiednie typy liczbowe i oblicz ich iloczyn.
Otrzymasz następujące dane wejściowe:
- Pierwszy wiersz: liczba dziesiętna (np.
"3.5") - Drugi wiersz: liczba całkowita (np.
"4")
Użyj readLine(), aby odczytać oba wejścia. Przekonwertuj pierwsze wejście na Double, a drugie na Int. Następnie pomnóż je przez siebie i wypisz wynik.
Użyj if let z łańcuchowym wiązaniem opcjonalnym, aby bezpiecznie rozpakować zarówno dane wejściowe, jak i przekonwertowaną wartość.
Wypisz: Iloczyn obu liczb jako wartość typu Double
Spróbuj swoich sił
// Wczytaj liczbę dziesiętną jako ciąg znaków
if let decimalString = readLine() {
// Wczytaj liczbę całkowitą jako ciąg znaków
if let intString = readLine() {
// TODO: Napisz swój kod poniżej
// Przekonwertuj decimalString na Double, a intString na Int, używając if let
// Następnie oblicz i wypisz ich iloczyn
}
}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