Inferenza del tipo
Fa parte della sezione Fondamenti del percorso Rust di Coddy. Lezione 12 di 75.
In Rust, l'inferenza dei tipi consente al compilatore di dedurre automaticamente il tipo di una variabile in base al suo valore e al suo utilizzo. Questo significa che spesso non è necessario specificare esplicitamente il tipo quando dichiari una variabile, rendendo il codice più conciso e facile da leggere.
Per esempio:
let x = 5;
// Rust deduce che x è un i32
let y = 3.14;
// Rust deduce che y è un f64
let message = "Hello, world!";
// Rust deduce che message è un &str (stringa)
let is_true = true;
// Rust deduce che is_true è un boolIn questi esempi, non abbiamo specificato i tipi di x, y, message e is_true. Il compilatore Rust ha dedotto automaticamente i loro tipi in base ai valori assegnati.
L’inferenza dei tipi non è solo comoda, ma aiuta anche a prevenire gli errori. Il compilatore verifica come vengono utilizzate le variabili e assicura che i tipi dedotti siano coerenti in tutto il codice. In caso di conflitto, il compilatore genera un errore.
Sfida
PrincipianteScrivi un programma Rust che dimostri l'inferenza dei tipi. Dichiara e inizializza le seguenti variabili senza annotazioni esplicite dei tipi:
- Una variabile chiamata
quantitycon il valore10. - Una variabile chiamata
pricecon il valore99.99. - Una variabile chiamata
messagecon il valore"Coddy is awesome!". - Una variabile chiamata
is_availablecon il valoretrue.
Dopo aver dichiarato queste variabili, usa println!() per stampare i loro valori sulla console. Osserva come Rust deduce i tipi di queste variabili in base ai loro valori.
Provalo tu
fn main() {
// Dichiara le variabili qui
// Visualizza i valori
println!("Quantity: {}", quantity);
println!("Price: {}", price);
println!("Message: {}", message);
println!("Is available: {}", is_available);
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori Parte 1
Operatori aritmeticiOperatore moduloAbbreviazioni aritmeticheOperatori di confrontoConfronto tra stringhe7Input/output di base
Stampare sulla consoleLeggere l'input dell'utenteRiepilogo - Fino a 120Riepilogo - Vero o falso5Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Ripasso - Logica sempliceOperatori logici Parte 311Funzioni
Dichiarare le funzioniParametri e argomentiValori restituitiValori restituiti multipliRiepilogo - funzione SigmaRiepilogo - funzione di validazione14Iterare sugli array
Guida ai rangeCiclo for avanzatoPrestito nel cicloOperazioni comuni sugli array3Variabili Parte 2
Dichiarazione del tipoConvenzioni di denominazioneInferenza del tipoRipasso - Inizializzare le variabiliConversione di tipo9Cicli
Ciclo for su sequenzeCiclo whileBreakContinueCiclo annidatoEtichette dei cicliCiclo infinitoRiepilogo - Input dinamico12Fondamenti degli array
Dichiarare gli arrayArray come parametroAccedere agli elementiModificare gli arrayRiepilogo - Stampare un array in modo leggibile15Operazioni sulle stringhe
Metodi delle stringheMacro format!Conversione delle stringheRipasso - FormattazioneEsercitati da solo: Compilatore Rust online