Menu
Coddy logo textTech

Zugriff auf Vektor-Elemente

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

Sobald Sie einen Vektor mit Elementen haben, müssen Sie auf einzelne Werte zugreifen. Rust bietet zwei verschiedene Ansätze, um Elemente aus einem Vektor abzurufen, wobei jeder seine eigenen Vor- und Nachteile in Bezug auf Komfort und Sicherheit hat.

Die erste Methode verwendet die Index-Syntax mit eckigen Klammern, ähnlich wie bei Arrays:

let numbers = vec![10, 20, 30, 40];
let first = numbers[0]; // liefert 10
let third = numbers[2]; // liefert 30

Obwohl diese Syntax vertraut und prägnant ist, birgt sie ein erhebliches Risiko: Wenn Sie versuchen, auf einen Index zuzugreifen, der nicht existiert, wird Ihr Programm mit einer Panic abbrechen und abstürzen:

let numbers = vec![10, 20, 30];
let invalid = numbers[5]; // Dies wird eine Panic auslösen!

Die zweite Methode verwendet die .get()-Methode, die sicheren Zugriff bietet:

let numbers = vec![10, 20, 30, 40];
let first = numbers.get(0); // gibt Some(10) zurück
let invalid = numbers.get(5); // gibt None zurück

Die .get()-Methode gibt ein Option zurück – entweder Some(value), wenn der Index existiert, oder None, wenn er nicht existiert. Dies zwingt Sie dazu, die Möglichkeit zu behandeln, dass das Element nicht existiert, was Abstürze verhindert und Ihren Code robuster macht.

challenge icon

Aufgabe

Einfach

Schreiben Sie eine Funktion get_element_at, die einen Vektor numbers und einen Index idx entgegennimmt und das Element an diesem Index unter Verwendung von sicherem Zugriff zurückgibt.

Verwenden Sie die Methode .get(), um sicher auf das Element zuzugreifen. Wenn der Index existiert, geben Sie den Wert zurück. Wenn der Index nicht existiert, geben Sie -1 als Standardwert zurück.

Parameter:

  • numbers (Vec<i32>): Der Vektor, auf den zugegriffen werden soll
  • idx (i32): Der abzurufende Index

Rückgabewert: Das Element am angegebenen Index oder -1, falls der Index nicht existiert (i32)

Spickzettel

Rust bietet zwei Methoden für den Zugriff auf Vektorelemente:

Index-Syntax mit eckigen Klammern:

let numbers = vec![10, 20, 30, 40];
let first = numbers[0]; // liefert 10
let third = numbers[2]; // liefert 30

Diese Methode führt zu einem Panic, wenn der Index nicht existiert:

let invalid = numbers[5]; // Dies wird einen Panic auslösen!

Die .get()-Methode für sicheren Zugriff:

let numbers = vec![10, 20, 30, 40];
let first = numbers.get(0); // gibt Some(10) zurück
let invalid = numbers.get(5); // gibt None zurück

Die .get()-Methode gibt einen Option-Typ zurück – entweder Some(value), wenn der Index existiert, oder None, wenn er nicht existiert. Dies verhindert Abstürze und erfordert eine explizite Behandlung fehlender Elemente.

Probier es selbst

fn get_element_at(numbers: Vec<i32>, idx: i32) -> i32 {
    // Code hier schreiben
}
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