0Pricing
Learn Rust Coding · Lekcja

Indeksowanie i iterowanie

Uzyska Pan/Pani dostęp do elementów i przeiteruje po nich.

Indeksowanie i iterowanie to bezpłatna lekcja Learn Rust Coding na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn Rust Coding, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn Rust Coding zawiera 4 lekcji w sumie.

Odczyt przez indeks

Każdy element wektora ma numer pozycji nazywany indeksem. Indeksy zaczynają się od 0, więc pierwszy element ma indeks 0.

Odczytaj element za pomocą nawiasów kwadratowych, na przykład v[0] oznacza pierwszą wartość.

fn main() {
    let v = vec![100, 200, 300];
    println!("first = {}", v[0]);
    println!("third = {}", v[2]);
}

Panika poza zakresem

Odwołanie przez indeks wykraczający poza koniec wektora powoduje panikę i zatrzymuje program. Dla wektora o długości 3 jedyne prawidłowe indeksy to 0, 1 i 2.

Odwołanie do v[5] w tym przypadku spowodowałoby awarię, dlatego zawsze upewnij się, że indeks mieści się w zakresie.

Bezpieczny dostęp za pomocą get

Metoda get zwraca Option zamiast powodować panikę. Otrzymasz Some(value), jeśli indeks istnieje, albo None, jeśli jest poza zakresem.

Dzięki temu możesz obsłużyć brakujący element w bezpieczny sposób.

fn main() {
    let v = vec![1, 2, 3];
    match v.get(5) {
        Some(x) => println!("got {}", x),
        None => println!("no such index"),
    }
}

Liczba elementów

Metoda len zwraca liczbę elementów. Ostatni prawidłowy indeks zawsze wynosi len - 1.

Znajomość długości pomaga bezpiecznie wykonywać iterację lub sprawdzać zakres przed użyciem indeksu.

fn main() {
    let v = vec![5, 6, 7, 8];
    println!("length = {}", v.len());
    println!("last = {}", v[v.len() - 1]);
}

Iteracja po wartościach

Najczytelniejszym sposobem odwiedzenia każdego elementu jest pętla for wykonująca iterację po referencji do wektora. Użycie &v pożycza wektor, dzięki czemu pozostaje on później dostępny.

W każdej iteracji n jest wiązane z referencją do jednego elementu.

fn main() {
    let v = vec![2, 4, 6];
    for n in &v {
        println!("value: {}", n);
    }
}

Iteracja z indeksem

Gdy potrzebujesz również pozycji, wywołaj iter().enumerate(). W każdej iteracji zwraca ono pary (index, value).

Jest to idealne rozwiązanie przy numerowanym wyjściu lub regułach zależnych od pozycji.

fn main() {
    let v = vec!["a", "b", "c"];
    for (i, item) in v.iter().enumerate() {
        println!("{}: {}", i, item);
    }
}

Modyfikowanie każdego elementu

Aby modyfikować wartości w miejscu, wykonuj iterację po &mut v, a wektor musi być zadeklarowany jako mut. Każde n jest zmienną referencyjną, dlatego aby przypisać wartość, usuwasz referencję za pomocą *.

Tutaj każdy element jest podwajany.

fn main() {
    let mut v = vec![1, 2, 3];
    for n in &mut v {
        *n *= 2;
    }
    println!("{:?}", v);
}

Sumowanie wektora

Iteratory ułatwiają obliczenia. Metoda iter().sum() dodaje do siebie wszystkie elementy.

Rust musi znać typ wyniku, dlatego określamy typ sumy jako i32.

fn main() {
    let v = vec![10, 20, 30];
    let total: i32 = v.iter().sum();
    println!("sum = {}", total);
}

Pierwszy i ostatni element

Metody first() i last() zwracają referencje typu Option do pierwszego i ostatniego elementu wektora. Zwracają None, gdy wektor jest pusty.

Ich użycie pozwala uniknąć ręcznego obliczania indeksów i awarii z powodu wyjścia poza zakres.

fn main() {
    let v = vec![7, 8, 9];
    println!("{:?}", v.first());
    println!("{:?}", v.last());
}

Wyszukiwanie za pomocą contains

Aby sprawdzić, czy wartość znajduje się w wektorze, użyj contains. Metoda przyjmuje referencję do wartości i zwraca wartość bool.

Przeszukuje wektor i jest szybkim sposobem sprawdzenia przynależności elementu.

fn main() {
    let v = vec![3, 6, 9];
    println!("has 6? {}", v.contains(&6));
    println!("has 5? {}", v.contains(&5));
}

Wycinanie zakresu

Wycinek pożycza część wektora za pomocą zakresu, na przykład &v[1..3]. Początek jest włączony, a koniec wyłączony.

Wycinki pozwalają pracować z fragmentem elementów bez ich kopiowania.

fn main() {
    let v = vec![10, 20, 30, 40];
    let middle = &v[1..3];
    println!("{:?}", middle);
}

Szybkie sprawdzenie

Sprawdź swoją wiedzę na temat indeksowania i iteracji.

Podsumowanie

Odczytywałeś elementy według indeksu, uzyskiwałeś do nich bezpieczny dostęp za pomocą get i wykonywałeś iterację za pomocą for, enumerate oraz &mut.

Używałeś również sum, first, last, contains i wycinków. Następnie dowiesz się, jak zwiększać i zmniejszać wektory.

Często zadawane pytania

Czy lekcja „Indeksowanie i iterowanie” jest bezpłatna?

Tak — pełny tekst „Indeksowanie i iterowanie” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn Rust Coding, przejdź na CoddyKit PRO. Kurs Learn Rust Coding zawiera 4 lekcji w sumie.

Co nauczysz się w „Indeksowanie i iterowanie”?

Uzyska Pan/Pani dostęp do elementów i przeiteruje po nich. Ćwiczysz Learn Rust Coding z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Learn Rust Coding?

Nie wymagamy żadnego doświadczenia. Learn Rust Coding w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Indeksowanie i iterowanie”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Learn Rust Coding?

Tak. Każda lekcja Learn Rust Coding zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Tworzenie i wypełnianie wektorów
  2. Indeksowanie i iterowanie
  3. Powiększanie i zmniejszanie
  4. Wektory struktur
← Powrót do Learn Rust Coding