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.
Tantangan
MudahTulis 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
}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