Menu
Coddy logo textTech

Dostęp do elementów wektora

Część sekcji Logika i przepływ programu ścieżki Rust w Coddy. Lekcja 10 z 66.

Gdy masz już wektor zawierający elementy, musisz uzyskać dostęp do poszczególnych wartości. Rust oferuje dwa różne sposoby pobierania elementów z wektora, z których każdy wiąże się z innymi kompromisami między wygodą a bezpieczeństwem.

Pierwsza metoda używa składni indeksowania z nawiasami kwadratowymi, podobnie jak w przypadku tablic:

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

Chociaż ta składnia jest znajoma i zwięzła, wiąże się z nią poważne ryzyko: jeśli spróbujesz uzyskać dostęp do indeksu, który nie istnieje, program wpadnie w panikę i ulegnie awarii:

let numbers = vec![10, 20, 30];
let invalid = numbers[5]; // To spowoduje panikę!

Druga metoda używa metody .get(), która zapewnia bezpieczny dostęp:

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

Metoda .get() zwraca Option — albo Some(value), jeśli indeks istnieje, albo None, jeśli nie istnieje. Zmusza cię to do obsłużenia możliwości, że element może nie istnieć, co zapobiega awariom i sprawia, że twój kod jest bardziej odporny.

challenge icon

Wyzwanie

Łatwy
Napisz funkcję get_element_at, która przyjmuje wektor numbers i indeks idx, a następnie zwraca element o tym indeksie, korzystając z bezpiecznego dostępu.

Użyj metody .get(), aby bezpiecznie uzyskać dostęp do elementu. Jeśli indeks istnieje, zwróć wartość. Jeśli indeks nie istnieje, zwróć -1 jako wartość domyślną.

Parametry:

  • numbers (Vec<i32>): Wektor, do którego uzyskujesz dostęp
  • idx (i32): Indeks elementu do pobrania

Wartość zwracana: Element o podanym indeksie lub -1, jeśli indeks nie istnieje (i32)

Spróbuj swoich sił

fn get_element_at(numbers: Vec<i32>, idx: i32) -> i32 {
    // Napisz kod tutaj
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator Rust online