Borrow dalam Loop
Termasuk bagian Dasar-Dasar dalam perjalanan Rust di Coddy. Pelajaran 67 dari 75.
Di Rust, setiap nilai memiliki pemilik, dan saat kamu menggunakan sebuah nilai dalam perulangan, Rust perlu tahu apakah kamu ingin meminjam nilai itu (hanya melihatnya sementara) atau mengambil kepemilikan atasnya (mengonsumsinya).
Hal ini penting karena jika sebuah perulangan mengambil alih kepemilikan datamu, kamu tidak dapat lagi menggunakan data tersebut setelah perulangan berakhir. Memahami perbedaan ini adalah kunci untuk menulis perulangan dengan benar di Rust.
Sebagai contoh, perhatikan data berikut:
let numbers = vec![1, 2, 3, 4, 5];
let mut sum = 0;Metode 1: Melihat data (menggunakan &):
for number in &numbers {
sum += number;
}
println!("I can use it here: {:?}", numbers);Metode 2: Mengambil data (tanpa &):
for number in numbers {
sum += number;
}
// println!("Can't use {:?} anymore!", numbers);
// Ini akan menyebabkan errorBayangkan seperti ini:
- Menggunakan
&seperti melihat album foto: kamu bisa melihat semua foto, tetapi album tetap utuh - Tidak menggunakan
&seperti mengeluarkan foto: kamu bisa menggunakannya, tetapi setelahnya album akan kosong
Sekarang gaya ini:
for num in numbers.iter() {}Mirip dengan ini:
for num in &numbers {}Dan perulangan mutasi:
for num in numbers.iter_mut() {
*num *= 2;
}Bisa juga ditulis seperti ini:
for num in &mut numbers {
*num *= 2;
}Coba sendiri
Pelajaran ini tidak memiliki tantangan kode.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Operator Bagian 1
Operator AritmetikaOperator ModuloPintasan AritmetikaOperator PerbandinganPerbandingan String7Input/Output Dasar
Menampilkan teks di konsolMembaca input penggunaUlasan: Hingga 120Ulasan: Benar atau Salah5Operator Bagian 2
Operator Logika Bagian 1Operator Logika Bagian 2Ulasan: Logika SederhanaOperator Logika Bagian 311Fungsi
Mendeklarasikan FungsiParameter dan ArgumenNilai KembalianBeberapa Nilai KembalianRingkasan: Fungsi SigmaRingkasan: Fungsi Validasi14Iterasi pada Array
Panduan RangeFor Loop yang DisempurnakanBorrow dalam LoopOperasi Umum pada Array3Variabel Bagian 2
Deklarasi TipeKonvensi PenamaanInferensi TipeRangkuman: Inisialisasi VariabelKonversi Tipe9Perulangan
For untuk Menelusuri UrutanWhile LoopBreakContinueNested LoopLabel LoopInfinite LoopRingkasan: Input DinamisLatihan sendiri: Compiler Rust online