Masquage, partie 2
Fait partie de la section Fundamentals du Journey Rust de Coddy — leçon 48 sur 75.
Lorsque vous masquez une variable en Rust, la nouvelle variable est complètement indépendante de l'originale, et elle nécessite sa propre déclaration de mutabilité. Le masquage n'hérite pas de la mutabilité de la variable d'origine.
let mut mut_val = 7;
// La variable d'origine est mutable
{
let mut_val = 8;
// C'est une nouvelle variable qui masque la variable mut_val externe
mut_val = 50;
// Une erreur s'est produite car
// mut_val n'est pas mutable
}
// Ici, c'est correct
// mut_val n'est pas gelée dans cette portée
mut_val = 3;Pour corriger cela, nous pouvons ajouter mut dans la portée interne :
{
let mut mut_val = 8;
mut_val = 50;
}Défi
DébutantCorrigez le code donné pour qu'il s'exécute sans erreurs.
Aide-mémoire
Lorsqu'on masque une variable en Rust (shadowing), la nouvelle variable est complètement indépendante et nécessite sa propre déclaration de mutabilité. Le masquage n'hérite pas de la mutabilité de la variable d'origine.
let mut mut_val = 7;
// La variable d'origine est mutable
{
let mut_val = 8;
// Ceci masque le mut_val extérieur mais est immuable
mut_val = 50;
// Erreur : mut_val n'est pas mutable dans cette portée
}Pour corriger cela, ajoutez mut à la variable de masquage :
{
let mut mut_val = 8;
mut_val = 50; // Maintenant, cela fonctionne
}Essayez vous-même
fn main() {
// Corrigez ce code pour qu'il fonctionne
let number = 42;
{
let number = number;
println!("number is {}", number);
number = 100; // Cela provoquera une erreur
println!("number is {}", number);
}
println!("number is {}", number);
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fundamentals
4Opérateurs - Partie 1
Opérateurs arithmétiquesOpérateur moduloRaccourcis arithmétiquesOpérateurs de comparaisonComparaison de chaînes7Entrées/Sorties de base
Afficher dans la consoleLire la saisie utilisateurRécapitulatif - Jusqu'à 120Récapitulatif - Vrai ou Faux5Opérateurs, partie 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Récapitulatif - Logique simpleOpérateurs logiques, partie 33Variables - Partie 2
Déclaration de typeConventions de nommageInférence de typeRécapitulatif - Initialiser des variablesConversion de type9Boucles
Boucle For sur une sérieBoucle WhileBreakContinueBoucles imbriquéesÉtiquettes de boucleBoucle infinieRécapitulatif - Entrée dynamique12Bases des tableaux
Déclaration de tableauxTableau comme paramètreAccès aux élémentsModification de tableauxRécapitulatif - Affichage formaté d'un tableau15Opérations sur les chaînes
Méthodes de chaînesMacro format!Conversion de chaînesRécapitulatif - Format