Menu
Coddy logo textTech

Über einen Vektor iterieren

Teil des Abschnitts Logic & Flow der Rust-Journey von Coddy — Lektion 11 von 66.

Nachdem Sie nun wissen, wie man Vektoren erstellt und auf einzelne Elemente zugreift, lernen wir nun, wie man jedes Element in einem Vektor systematisch verarbeitet. Die for-Schleife ist perfekt für diese Aufgabe geeignet, da sie es Ihnen ermöglicht, jedes Element nacheinander zu besuchen.

Hier ist die grundlegende Syntax für das Iterieren über einen Vektor:

let names = vec!["Alice", "Bob", "Charlie"];

for name in &names {
    println!("Hello, {}!", name);
}

Beachten Sie das & vor names – dies erstellt eine Referenz auf den Vektor, was es Ihnen ermöglicht, jedes Element zu lesen, ohne den Besitz am Vektor selbst zu übernehmen. Jede Iteration gibt Ihnen über die Schleifenvariable name Zugriff auf jeweils ein Element.

Die for-Schleife übernimmt automatisch die Bereichsprüfung für Sie. Im Gegensatz zur manuellen Indizierung werden Sie nie versehentlich versuchen, auf ein Element zuzugreifen, das nicht existiert. Die Schleife durchläuft genau so viele Elemente, wie der Vektor enthält, was sie sowohl sicher als auch praktisch macht.

Sie können dieses Muster mit jeder Art von Vektor verwenden:

let scores = vec![85, 92, 78, 90];

for score in &scores {
    println!("Score: {}", score);
}

Dieser Ansatz ist die gebräuchlichste und idiomatischste Art, alle Elemente in einem Vektor zu verarbeiten, wenn Sie deren Werte lesen müssen.

challenge icon

Aufgabe

Einfach

Schreiben Sie eine Funktion sum_all_elements, die einen Vektor numbers entgegennimmt und die Summe all seiner Elemente zurückgibt.

Verwenden Sie eine for-Schleife, um über den Vektor zu iterieren und die Summe aller Elemente zu akkumulieren.

Parameter:

  • numbers (Vec<i32>): Der Vektor aus Ganzzahlen, die summiert werden sollen

Rückgabewert: Die Summe aller Elemente im Vektor (i32)

Spickzettel

Um über einen Vektor zu iterieren, verwenden Sie eine for-Schleife mit einer Referenz auf den Vektor:

let names = vec!["Alice", "Bob", "Charlie"];

for name in &names {
    println!("Hello, {}!", name);
}

Das & vor dem Vektornamen erstellt eine Referenz, die es Ihnen ermöglicht, jedes Element zu lesen, ohne den Besitz (Ownership) zu übernehmen. Die Schleife übernimmt automatisch die Bereichsprüfung und besucht genau so viele Elemente, wie der Vektor enthält.

Dieses Muster funktioniert mit jedem Vektortyp:

let scores = vec![85, 92, 78, 90];

for score in &scores {
    println!("Score: {}", score);
}

Probier es selbst

fn sum_all_elements(numbers: Vec<i32>) -> i32 {
    // Schreibe hier den Code
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logic & Flow