CodeBlanks Logo Icon CodeBlanks

Dizi (array)

[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

main.rs
fn main() {
    // buraya yaz
}

Örnek çözüm

main.rs
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ü

Soru
let gunler: [&str; ____] = ["Pzt", "Sal", "Çar"];
Cevap
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

Başlangıç bölümündeki tüm dersler

16 Proje: Yapılacaklar listesi

  1. Görev modeli
  2. Ekleme
  3. Listeleme
  4. İşaretleme
  5. Komut okuma