next metodu
- Rust kursu
- Orta seviye
- Ders 49/115
- 4 dk
next ile elemanları tek tek tüketirsin.
next metodu
next elle de çağrılabilir. Yineleyici değişkeni mut olmalıdır, çünkü her çağrı onu ilerletir; tükenmiş bir yineleyici None vermeye devam eder:
let v = vec!["a", "b"];
let mut it = v.iter();
println!("{:?}", it.next()); // Some("a")
println!("{:?}", it.next()); // Some("b")
println!("{:?}", it.next()); // Nonefor döngüsü arka planda tam olarak bunu yapar: None gelene kadar next çağırır.
Tüketen yöntemler
Bazı yöntemler next'i sonuna kadar çağırarak yineleyiciyi tüketir ve bir sonuç üretir: sum, count, collect, last, max. Tükenen yineleyici bir daha kullanılamaz (taşınmıştır):
let it = vec![1, 2, 3].into_iter();
let toplam: i32 = it.sum();
// it.count(); // hata: it, sum içinde taşındı
println!("{toplam}"); // 6nth(n) ve find ise yineleyiciyi yalnızca gerektiği kadar ilerletir.
Uygulama Elle ilerletme
let v = vec!["a", "b"]; için let mut it = v.iter(); oluştur ve next()'i üç kez çağırıp sonuçları {:?} ile tek satırda yazdır.
Başlangıç kodu
fn main() {
// buraya yaz
}Örnek çözüm
fn main() {
let v = vec!["a", "b"];
let mut it = v.iter();
let a = it.next();
let b = it.next();
let c = it.next();
println!("{:?} {:?} {:?}", a, b, c);
}Beklenen çıktı
Some("a") Some("b") None
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 <code>iter()</code>, <code>iter_mut()</code> ve <code>into_iter()</code> sırasıyla ne üretir?
- &T, &T, &T
- T, &mut T, &T
- &T, &mut T, T Doğru cevap
- T, T, T
Açıklama: into_iter koleksiyonu tüketir ve elemanların sahipliğini verir.
2 İlerlet
let mut it = v.iter();
let ilk = it.____();
let mut it = v.iter();
let ilk = it.next();
Açıklama: next yineleyiciyi bir adım ilerletir ve elemanı Option içinde verir.
3 Yöntem ve [1, 2, 3] sonucu
| Kavram | Anlamı |
|---|---|
.iter().count() |
3 |
.iter().last() |
Some(3) |
.iter().nth(1) |
Some(2) |
.iter().nth(5) |
None |