0Pricing
Learn Rust Coding · Pelajaran

Melakukan Iterasi pada Koleksi

for dan iterator

Melakukan Iterasi pada Koleksi adalah pelajaran Learn Rust Coding gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Learn Rust Coding, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn Rust Coding mencakup 4 pelajaran total.

Melakukan Perulangan dengan for

Perulangan for adalah cara paling sederhana untuk mengunjungi setiap elemen dalam koleksi.

fn main() {
    let nums = vec![1, 2, 3];
    for n in &nums {
        println!("{}", n);
    }
}

Melakukan Perulangan pada Rentang

Rentang menghasilkan urutan yang dapat Anda iterasikan. 1..5 tidak menyertakan nilai akhir; 1..=5 menyertakannya.

fn main() {
    for i in 1..=3 {
        println!("i = {}", i);
    }
}

Metode iter

Memanggil .iter() membuat sebuah iterator yang menghasilkan referensi ke setiap elemen. Iterator bersifat lazy hingga digunakan.

fn main() {
    let v = vec![10, 20, 30];
    let mut it = v.iter();
    println!("{:?}", it.next());
    println!("{:?}", it.next());
}

Tiga Cara Melakukan Iterasi

Vektor menyediakan tiga gaya iterasi:

  • iter() — menghasilkan &T (peminjaman).
  • iter_mut() — menghasilkan &mut T (peminjaman mutabel).
  • into_iter() — menghasilkan T (mengambil kepemilikan).
fn main() {
    let v = vec![1, 2, 3];
    for x in v.into_iter() {
        println!("owned {}", x);
    }
}

Mengubah dengan map

map menerapkan closure ke setiap elemen dan menghasilkan iterator baru. Gunakan collect untuk mengumpulkan hasilnya.

fn main() {
    let v = vec![1, 2, 3];
    let squared: Vec<i32> = v.iter().map(|x| x * x).collect();
    println!("{:?}", squared);
}

Memilih dengan filter

filter hanya mempertahankan elemen yang menghasilkan true dari closure.

fn main() {
    let v = vec![1, 2, 3, 4, 5];
    let odds: Vec<i32> = v.into_iter().filter(|x| x % 2 == 1).collect();
    println!("{:?}", odds);
}

Menggabungkan dengan sum dan count

Metode yang mengonsumsi iterator mereduksinya menjadi satu nilai, seperti sum, count, max, dan min.

fn main() {
    let v = vec![4, 8, 15, 16];
    let total: i32 = v.iter().sum();
    let how_many = v.iter().count();
    println!("sum {} count {}", total, how_many);
}

Merangkai Adaptor

Metode iterator dapat dirangkai menjadi pipeline yang jelas. Setiap langkah mengubah aliran sebelum konsumen terakhir.

fn main() {
    let v = vec![1, 2, 3, 4, 5, 6];
    let result: i32 = v.iter()
        .filter(|x| *x % 2 == 0)
        .map(|x| x * 10)
        .sum();
    println!("{}", result);
}

enumerate untuk Indeks

enumerate memasangkan setiap elemen dengan indeksnya dan menghasilkan tuple (index, value).

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

Melakukan Iterasi pada HashMap

Iterator juga bekerja pada map. Perulangan menghasilkan tuple key-value.

use std::collections::HashMap;

fn main() {
    let mut m = HashMap::new();
    m.insert("a", 1);
    m.insert("b", 2);
    for (k, v) in &m {
        println!("{} -> {}", k, v);
    }
}

for vs Metode Iterator

Perulangan for biasa sangat cocok untuk efek samping seperti mencetak. Adaptor iterator (map, filter, sum) sangat berguna saat mengubah data menjadi nilai baru.

fn main() {
    let v = vec![2, 4, 6];
    let doubled: Vec<i32> = v.iter().map(|x| x * 2).collect();
    for x in &doubled {
        println!("{}", x);
    }
}

Pemeriksaan Singkat

Ingat kembali peran adaptor iterator.

Ringkasan

Melakukan iterasi pada koleksi di Rust:

  • for x in &collection untuk perulangan sederhana.
  • iter, iter_mut, into_iter mengatur peminjaman.
  • Adaptor: map, filter, enumerate.
  • Konsumen: collect, sum, count, max.
fn main() {
    let prices = vec![10, 25, 40];
    let with_tax: Vec<i32> = prices.iter().map(|p| p + p / 5).collect();
    let total: i32 = with_tax.iter().sum();
    println!("{:?} total {}", with_tax, total);
}

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Melakukan Iterasi pada Koleksi” gratis?

Ya — teks lengkap “Melakukan Iterasi pada Koleksi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn Rust Coding, upgrade ke CoddyKit PRO. Kursus Learn Rust Coding mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Melakukan Iterasi pada Koleksi”?

for dan iterator Kamu berlatih Learn Rust Coding dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Learn Rust Coding?

Tidak diperlukan pengalaman sebelumnya. Learn Rust Coding di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Melakukan Iterasi pada Koleksi” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Learn Rust Coding ini?

Ya. Setiap pelajaran Learn Rust Coding menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Vektor
  2. String dan &str
  3. HashMaps
  4. Melakukan Iterasi pada Koleksi
← Kembali ke Learn Rust Coding