Indizieren und iterieren
Greifen Sie auf Elemente zu und durchlaufen Sie sie.
Indizieren und iterieren ist eine kostenlose Learn Rust Coding-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Learn Rust Coding-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Learn Rust Coding-Kurs umfasst insgesamt 4 Lektionen.
Lesen per Index
Jedes Element in einem Vektor hat eine Positionsnummer, die als Index bezeichnet wird. Indizes beginnen bei 0, daher hat das erste Element den Index 0.
Lesen Sie ein Element mit eckigen Klammern, etwa mit v[0] für den ersten Wert.
fn main() {
let v = vec![100, 200, 300];
println!("first = {}", v[0]);
println!("third = {}", v[2]);
}Panik bei ungültigen Indizes
Der Zugriff über das Ende eines Vektors hinaus löst eine Panik aus und beendet das Programm. Bei einem Vektor der Länge 3 sind nur die Indizes 0, 1 und 2 gültig.
Der Zugriff auf v[5] würde hier zu einem Absturz führen. Stellen Sie daher immer sicher, dass der Index im gültigen Bereich liegt.
Sicherer Zugriff mit get
Die Methode get gibt ein Option zurück, anstatt eine Panik auszulösen. Sie erhalten Some(value), wenn der Index existiert, oder None, wenn er außerhalb des gültigen Bereichs liegt.
So können Sie mit einem fehlenden Element auf geeignete Weise umgehen.
fn main() {
let v = vec![1, 2, 3];
match v.get(5) {
Some(x) => println!("got {}", x),
None => println!("no such index"),
}
}Anzahl der Elemente
Die Methode len gibt die Anzahl der Elemente zurück. Der letzte gültige Index ist immer len - 1.
Wenn Sie die Länge kennen, können Sie sicher iterieren oder vor einem Indexzugriff die Grenzen prüfen.
fn main() {
let v = vec![5, 6, 7, 8];
println!("length = {}", v.len());
println!("last = {}", v[v.len() - 1]);
}Über Werte iterieren
Die übersichtlichste Möglichkeit, jedes Element zu besuchen, ist eine for-Schleife über eine Referenz auf den Vektor. Mit &v leihen Sie sich den Vektor aus, sodass er anschließend weiter verwendet werden kann.
Bei jedem Durchlauf wird n an eine Referenz auf ein Element gebunden.
fn main() {
let v = vec![2, 4, 6];
for n in &v {
println!("value: {}", n);
}
}Mit Index iterieren
Wenn Sie zusätzlich die Position benötigen, rufen Sie iter().enumerate() auf. Bei jedem Schritt liefert die Methode Paare der Form (index, value).
Das eignet sich ideal für nummerierte Ausgaben oder Regeln, die von der Position abhängen.
fn main() {
let v = vec!["a", "b", "c"];
for (i, item) in v.iter().enumerate() {
println!("{}: {}", i, item);
}
}Jedes Element ändern
Um Werte direkt zu verändern, iterieren Sie über &mut v; der Vektor muss dabei als mut deklariert sein. Jedes n ist eine veränderbare Referenz. Deshalb dereferenzieren Sie es mit *, um ihm einen Wert zuzuweisen.
Hier wird jedes Element verdoppelt.
fn main() {
let mut v = vec![1, 2, 3];
for n in &mut v {
*n *= 2;
}
println!("{:?}", v);
}Einen Vektor summieren
Iteratoren machen Berechnungen einfach. Die Methode iter().sum() addiert alle Elemente.
Rust muss den Ergebnistyp kennen, daher geben wir die Gesamtsumme als i32 an.
fn main() {
let v = vec![10, 20, 30];
let total: i32 = v.iter().sum();
println!("sum = {}", total);
}Erstes und letztes Element
Die Methoden first() und last() geben Option-Referenzen auf die Enden des Vektors zurück. Bei einem leeren Vektor liefern sie None.
Mit diesen Methoden vermeiden Sie manuelle Indexberechnungen und Abstürze durch ungültige Indizes.
fn main() {
let v = vec![7, 8, 9];
println!("{:?}", v.first());
println!("{:?}", v.last());
}Mit contains suchen
Um zu prüfen, ob ein Wert vorhanden ist, verwenden Sie contains. Die Methode erhält eine Referenz auf den Wert und gibt einen booleschen Wert zurück.
Sie durchsucht den Vektor und bietet eine schnelle Möglichkeit, die Zugehörigkeit zu prüfen.
fn main() {
let v = vec![3, 6, 9];
println!("has 6? {}", v.contains(&6));
println!("has 5? {}", v.contains(&5));
}Einen Bereich als Slice verwenden
Ein Slice leiht sich mithilfe eines Bereichs einen Teil eines Vektors aus, etwa mit &v[1..3]. Der Anfang ist eingeschlossen, das Ende ausgeschlossen.
Mit Slices können Sie mit einem Ausschnitt von Elementen arbeiten, ohne sie zu kopieren.
fn main() {
let v = vec![10, 20, 30, 40];
let middle = &v[1..3];
println!("{:?}", middle);
}Kurze Überprüfung
Testen Sie Ihr Verständnis von Indizierung und Iteration.
Zusammenfassung
Sie haben Elemente per Index gelesen, mit get sicher auf sie zugegriffen und mit for, enumerate und &mut über sie iteriert.
Außerdem haben Sie sum, first, last, contains und Slices verwendet. Als Nächstes vergrößern und verkleinern Sie Vektoren.
Häufig gestellte Fragen
Ist die Lektion „Indizieren und iterieren“ kostenlos?
Ja — der vollständige Text von „Indizieren und iterieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Learn Rust Coding-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Learn Rust Coding-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Indizieren und iterieren“?
Greifen Sie auf Elemente zu und durchlaufen Sie sie. Du übst Learn Rust Coding mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Learn Rust Coding zu starten?
Keine Vorkenntnisse erforderlich. Learn Rust Coding auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Indizieren und iterieren“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Learn Rust Coding-Lektion Code schreiben und ausführen?
Ja. Jede Learn Rust Coding-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Vektoren erstellen und füllen
- Indizieren und iterieren
- Vergrößern und verkleinern
- Vektoren aus Structs