Dizi (array)
- Rust kursu
- Başlangıç
- Ders 17/115
- 4 dk
[T; n] sabit boyutlu dizilerini öğrenirsin.
Dizi (array)
Dizi aynı türden sabit sayıda elemanı yığında (stack) tutar. Tür [T; N] biçimindedir ve uzunluk türün parçasıdır:
let notlar: [i32; 4] = [70, 85, 90, 55];
let sifirlar = [0; 5]; // [0, 0, 0, 0, 0]
println!("{} {}", notlar[0], notlar.len());Aralık dışı dizin (ör. notlar[10]) çalışma anında panic üretir; Rust geçersiz belleğe asla erişmez. Güvenli okuma için notlar.get(10) bir Option döndürür.
Diziyi gezmek
Diziler for ile gezilir ve iteratör yöntemleri kullanılabilir:
let notlar = [70, 85, 90, 55];
for n in notlar {
print!("{n} ");
}
let toplam: i32 = notlar.iter().sum();
let en_yuksek = notlar.iter().max().unwrap();
println!("\n{toplam} {en_yuksek}");Uzunluğu çalışma anında değişecek listeler için dizi yerine Vec<T> kullanılır.
Uygulama Not istatistiği
let notlar = [70, 85, 90, 55]; için toplamı .iter().sum::<i32>(), en yüksek notu .iter().max() ile bul ve println!("{} {}", toplam, en_yuksek); yazdır.
Başlangıç kodu
fn main() {
// buraya yaz
}Örnek çözüm
fn main() {
let notlar = [70, 85, 90, 55];
let toplam = notlar.iter().sum::<i32>();
let en_yuksek = notlar.iter().max().unwrap();
println!("{} {}", toplam, en_yuksek);
}Beklenen çıktı
300 90
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 <code>[1, 2, 3].get(5)</code> ne döndürür?
- Some(0)
- None Doğru cevap
- panic
- 0
Açıklama: get sınır denetimini sonuçla bildirir: geçerli dizinde Some(&değer), değilse None.
2 Dizi türü
let gunler: [&str; ____] = ["Pzt", "Sal", "Çar"];
let gunler: [&str; 3] = ["Pzt", "Sal", "Çar"];
Açıklama: Dizi türündeki sayı eleman sayısıdır ve değerle eşleşmelidir.
3 İfade ve sonuç
| Kavram | Anlamı |
|---|---|
[0; 3] |
[0, 0, 0] |
[1, 2, 3].len() |
3 |
[1, 2][5] |
panic |
[1, 2].get(5) |
None |