Menu
CoddyTech

Iterasi Mutable

Termasuk bagian Logika dan Alur dalam perjalanan Rust di Coddy. Pelajaran 12 dari 66.

Terkadang kamu perlu melakukan lebih dari sekadar membaca elemen vector, kamu juga perlu mengubahnya. Pelajaran sebelumnya menunjukkan cara melakukan iterasi dan membaca nilai, sedangkan pelajaran ini mengajarkan cara mengubah elemen selama iterasi menggunakan referensi yang dapat diubah.

Untuk mengubah elemen saat melakukan iterasi, kamu perlu menggunakan &mut alih-alih & dalam for loop:

let mut numbers = vec![1, 2, 3, 4];

for number in &mut numbers {
    *number = *number * 2;
}

&mut numbers membuat referensi mutable ke vector, dan setiap iterasi memberimu referensi mutable ke elemen individual. Operator * (disebut operator dereferensi) digunakan untuk mengakses dan mengubah nilai sebenarnya yang ditunjuk oleh referensi tersebut.

Pola ini sangat berguna untuk mengubah data secara langsung. Alih-alih membuat vector baru dengan nilai yang telah diubah, kamu dapat memperbarui vector yang sudah ada secara efisien. Agar ini dapat berfungsi, vector harus dideklarasikan sebagai mut, karena kamu mengubah isinya.

Setelah perulangan di atas, numbers akan berisi [2, 4, 6, 8] - setiap nilai asli dikalikan dua di tempatnya.

challenge icon

Tantangan

Mudah
Tulis fungsi add_ten_to_all yang menerima vector mutable numbers, menambahkan 10 ke setiap elemen secara langsung, lalu mengembalikan vector yang telah dimodifikasi.

Gunakan iterasi mutable dengan &mut untuk memodifikasi setiap elemen secara langsung. Ingat untuk menggunakan operator dereferensi * untuk mengakses dan memodifikasi nilai sebenarnya.

Parameter:

  • numbers (Vec<i32>): Vector mutable berisi bilangan bulat yang akan dimodifikasi

Nilai yang dikembalikan: Vector yang telah dimodifikasi dengan tambahan 10 pada setiap elemen (Vec<i32>)

Coba sendiri

fn add_ten_to_all(mut numbers: Vec<i32>) -> Vec<i32> {
    // Tulis kodemu di sini
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Rust online