Shadowing Teil 2
Teil des Abschnitts Fundamentals der Rust-Journey von Coddy — Lektion 48 von 75.
Wenn Sie eine Variable in Rust überschatten (shadowing), ist die neue Variable völlig unabhängig von der ursprünglichen und benötigt ihre eigene Deklaration der Veränderbarkeit (mutability). Das Überschatten erbt nicht die Veränderbarkeit der ursprünglichen Variable.
let mut mut_val = 7;
// Die ursprüngliche Variable ist veränderbar
{
let mut_val = 8;
// Dies ist eine neue Variable, die das äußere mut_val überschattet
mut_val = 50;
// Ein Fehler ist aufgetreten, weil
// mut_val nicht veränderbar ist
}
// Hier ist es okay
// mut_val ist in diesem Bereich nicht eingefroren
mut_val = 3;Um dies zu beheben, können wir mut im inneren Gültigkeitsbereich hinzufügen:
{
let mut mut_val = 8;
mut_val = 50;
}Aufgabe
AnfängerKorrigiere den angegebenen Code, damit er ohne Fehler ausgeführt wird.
Spickzettel
Beim Shadowing einer Variablen in Rust ist die neue Variable völlig unabhängig und benötigt eine eigene Deklaration der Veränderbarkeit (Mutability). Shadowing erbt die Veränderbarkeit nicht von der ursprünglichen Variablen.
let mut mut_val = 7;
// Die ursprüngliche Variable ist veränderbar
{
let mut_val = 8;
// Dies überschattet das äußere mut_val, ist aber unveränderbar
mut_val = 50;
// Fehler: mut_val ist in diesem Gültigkeitsbereich nicht veränderbar
}Um dies zu beheben, fügen Sie mut zur überschattenden Variablen hinzu:
{
let mut mut_val = 8;
mut_val = 50; // Jetzt funktioniert dies
}Probier es selbst
fn main() {
// Korrigiere diesen Code, damit er funktioniert
let number = 42;
{
let number = number;
println!("number is {}", number);
number = 100; // Dies wird einen Fehler verursachen
println!("number is {}", number);
}
println!("number is {}", number);
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Fundamentals
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorArithmetische AbkürzungenVergleichsoperatorenString-Vergleich7Grundlagen IO
Ausgabe in die KonsoleBenutzereingaben lesenWiederholung - Bis 120Wiederholung - Wahr oder Falsch5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Wiederholung - Einfache LogikLogische Operatoren Teil 311Funktionen
Funktionen deklarierenParameter und ArgumenteRückgabewerteMehrere RückgabewerteWiederholung - Sigma-FunktionWiederholung - Validierungsfunktion14Iterieren über Arrays
Range-LeitfadenErweiterte For-SchleifeBorrowing in SchleifenGängige Array-Operationen3Variablen Teil 2
TypdeklarationNamenskonventionenTypinferenzRückblick - Variablen initialisierenTypumwandlung6Entscheidungsfindung
If-AusdrückeIf-ElseMatch-AnweisungZusammenfassung - If-ElseVerschachteltes If-Else9Schleifen
For-Schleife über SerienWhile-SchleifeBreakContinueVerschachtelte SchleifenSchleifen-LabelsEndlosschleifeRückblick – Dynamische Eingabe