Wnioskowanie o typie
Część sekcji Podstawy ścieżki Rust w Coddy. Lekcja 12 z 75.
W Rust wnioskowanie o typach pozwala kompilatorowi automatycznie wywnioskować typ zmiennej na podstawie jej wartości i sposobu użycia. Oznacza to, że często nie musisz jawnie określać typu podczas deklarowania zmiennej, dzięki czemu Twój kod jest bardziej zwięzły i łatwiejszy do czytania.
Na przykład:
let x = 5;
// Rust wnioskuje, że x jest typu i32
let y = 3.14;
// Rust wnioskuje, że y jest typu f64
let message = "Hello, world!";
// Rust wnioskuje, że message jest typu &str (ciąg znaków)
let is_true = true;
// Rust wnioskuje, że is_true jest typu boolW tych przykładach nie określiliśmy typów zmiennych x, y, message i is_true. Kompilator Rust automatycznie wywnioskował ich typy na podstawie przypisanych im wartości.
Wnioskowanie o typach jest nie tylko wygodne, ale także pomaga zapobiegać błędom. Kompilator sprawdza, jak używane są zmienne, i upewnia się, że wywnioskowane typy są spójne w całym kodzie. Jeśli wystąpi konflikt, kompilator wygeneruje błąd.
Wyzwanie
PoczątkującyNapisz program w Rust, który demonstruje wnioskowanie o typach. Zadeklaruj i zainicjuj następujące zmienne bez jawnych adnotacji typów:
- Zmienna o nazwie
quantityz wartością10. - Zmienna o nazwie
pricez wartością99.99. - Zmienna o nazwie
messagez wartością"Coddy is awesome!". - Zmienna o nazwie
is_availablez wartościątrue.
Po zadeklarowaniu tych zmiennych użyj println!(), aby wyświetlić ich wartości w konsoli. Zaobserwuj, jak Rust wnioskuje o typach tych zmiennych na podstawie ich wartości.
Spróbuj swoich sił
fn main() {
// Zadeklaruj tutaj zmienne
// Wyświetl wartości
println!("Quantity: {}", quantity);
println!("Price: {}", price);
println!("Message: {}", message);
println!("Is available: {}", is_available);
}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 moduloSkrócone operacje arytmetyczneOperatory porównaniaPorównywanie ciągów znaków7Podstawowe wejście i wyjście
Wyświetlanie w konsoliOdczytywanie danych od użytkownikaPowtórka – do 120Powtórka – prawda czy fałsz5Operatory, część 2
Operatory logiczne, część 1Operatory logiczne, część 2Powtórka — prosta logikaOperatory logiczne, część 311Funkcje
Deklarowanie funkcjiParametry i argumentyWartości zwracaneWiele wartości zwracanychPowtórka – funkcja SigmaPowtórka – funkcja walidująca14Iterowanie po tablicach
Przewodnik po zakresachUlepszona pętla forPożyczanie w pętliTypowe operacje na tablicach3Zmienne – część 2
Deklarowanie typuKonwencje nazewnictwaWnioskowanie o typiePodsumowanie – inicjalizacja zmiennychRzutowanie typów9Pętle
Pętla for dla sekwencjiPętla whileInstrukcja breakInstrukcja continuePętle zagnieżdżoneEtykiety pętliPętla nieskończonaPodsumowanie — dynamiczne dane wejściowe12Podstawy tablic
Deklarowanie tablicTablica jako parametrDostęp do elementówModyfikowanie tablicPodsumowanie — czytelny wydruk tablicy15Operacje na ciągach znaków
Metody ciągów znakówMakro format!Konwersja ciągów znakówPowtórka — formatowaniePoćwicz samodzielnie: Kompilator Rust online