Mengakses Elemen Vektor
Termasuk bagian Logika dan Alur dalam perjalanan Rust di Coddy. Pelajaran 10 dari 66.
Setelah kamu memiliki vector dengan elemen, kamu perlu mengakses nilai satu per satu. Rust menyediakan dua pendekatan berbeda untuk mengambil elemen dari vector, masing-masing dengan kelebihan dan kekurangan dalam hal kemudahan dan keamanan.
Method pertama menggunakan sintaks indeks dengan tanda kurung siku, mirip dengan array:
let numbers = vec![10, 20, 30, 40];
let first = numbers[0]; // mengambil 10
let third = numbers[2]; // mengambil 30Meskipun sintaks ini sudah familier dan ringkas, ada risiko besar: jika kamu mencoba mengakses indeks yang tidak ada, programmu akan mengalami panic dan crash:
let numbers = vec![10, 20, 30];
let invalid = numbers[5]; // Ini akan menyebabkan panic!Method kedua menggunakan method .get(), yang menyediakan akses aman:
let numbers = vec![10, 20, 30, 40];
let first = numbers.get(0); // mengembalikan Some(10)
let invalid = numbers.get(5); // mengembalikan Nonemethod .get() mengembalikan Option, yaitu Some(value) jika indeksnya ada, atau None jika tidak ada. Ini memaksamu menangani kemungkinan bahwa elemennya mungkin tidak ada, sehingga mencegah crash dan membuat kodemu lebih tangguh.
Tantangan
MudahTulis fungsi get_element_at yang menerima sebuah vektor numbers dan indeks idx, lalu mengembalikan elemen pada indeks tersebut dengan akses yang aman.
Gunakan method .get() untuk mengakses elemen dengan aman. Jika indeksnya ada, kembalikan nilainya. Jika indeksnya tidak ada, kembalikan -1 sebagai nilai default.
Parameter:
numbers(Vec<i32>): Vektor yang akan diaksesidx(i32): Indeks yang akan diambil
Nilai yang dikembalikan: Elemen pada indeks yang diberikan, atau -1 jika indeksnya tidak ada (i32)
Coba sendiri
fn get_element_at(numbers: Vec<i32>, idx: i32) -> i32 {
// Tulis kodemu di sini
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Alur Kontrol Lanjutan
Ekspresi 'match'Mencocokkan Beberapa NilaiMencocokkan RentangEkspresi 'if let'Perulangan sebagai EkspresiRangkuman, Parser Perintah Sederhana4Mengelompokkan Data dengan Struct
Apa Itu Struct?Ringkasan StructMengakses Field StructStruct yang Dapat DiubahStruct sebagai Parameter FungsiStruct TupleRangkuman: Buat Struct Buku2Pengantar Vektor
Apa Itu Vektor?Membuat VektorMenambahkan Elemen dengan pushMengakses Elemen VektorMelakukan Iterasi pada VektorIterasi MutableMenghapus ElemenRangkuman: Pelacak Skor Dasar5Pasangan Kunci-Nilai dengan Hash Map
Apa Itu Hash Map?Membuat Hash MapMenyisipkan Pasangan Kunci-NilaiMengakses NilaiMenelusuri Hash MapMemperbarui NilaiMenghapus PasanganRangkuman: Penghitung Kata8Proyek: Inventaris Barang Sederhana
Menyiapkan ProyekMenambahkan BarangMemeriksa StokMenjual BarangMenyatukan Semuanya3Daftar Tugas Baris Perintah
Penyiapan ProyekMenambahkan TugasMelihat Semua TugasMenghapus TugasKode AkhirLatihan sendiri: Compiler Rust online