Menu
Coddy logo textTech

Shadowing, parte 2

Fa parte della sezione Fondamenti del percorso Rust di Coddy. Lezione 48 di 75.

Quando metti in ombra una variabile in Rust, la nuova variabile è completamente indipendente da quella originale e ha bisogno della propria dichiarazione di mutabilità. L'ombreggiamento non eredita la mutabilità della variabile originale.

let mut mut_val = 7;
// La variabile originale è mutabile
{ 
    let mut_val = 8;
    // Questa è una nuova variabile che oscura la variabile esterna mut_val
      
    mut_val = 50;
    // Si è verificato un errore perché
    // mut_val non è mutabile
}
// Qui va bene 
// mut_val non è bloccata in questo ambito
mut_val = 3;

Per risolvere, possiamo aggiungere mut nello scope interno:

{
	let mut mut_val = 8;
	mut_val = 50;
}
challenge icon

Sfida

Principiante

Correggi il codice fornito in modo che venga eseguito senza errori.

Provalo tu

fn main() {
    // Correggi questo codice per farlo funzionare
    let number = 42;
    {
        let number = number;
        println!("number is {}", number);
        number = 100;  // Questo causerà un errore
        println!("number is {}", number);
    }
    println!("number is {}", number);
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore Rust online