CodeBlanks Logo Icon CodeBlanks

mod tanımı

mod ile modül tanımlamayı öğrenirsin.

mod tanımı

Modüller kodu adlandırılmış bölümlere ayırır ve bir ağaç oluşturur. Ağacın kökü crate'tir (main.rs ya da lib.rs):

mod matematik {
    pub fn kare(x: i32) -> i32 {
        x * x
    }

    pub mod istatistik {
        pub fn ortalama(v: &[f64]) -> f64 {
            v.iter().sum::<f64>() / v.len() as f64
        }
    }
}

// crate
//  └── matematik
//       ├── kare
//       └── istatistik
//            └── ortalama

Öğelere yol ile erişilir: matematik::kare(7), matematik::istatistik::ortalama(&v).

Neden modül?

Modüller üç iş görür: ilgili kodu bir arada tutar, ad çakışmalarını önler (daire::alan ve kare::alan birlikte yaşayabilir) ve gizlilik sınırı çizer: dışarıya yalnızca pub işaretli API görünür, iç ayrıntılar serbestçe değişebilir.

mod sayac {
    fn ic_yardimci() {}          // yalnızca modül içi
    pub fn artir(n: u32) -> u32 { n + 1 }
}

Uygulama İlk modül

mod matematik içinde pub fn kare(x: i32) -> i32 tanımla ve main'de matematik::kare(7) sonucunu yazdır.

Başlangıç kodu

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

Örnek çözüm

main.rs
mod matematik {
    pub fn kare(x: i32) -> i32 {
        x * x
    }
}

fn main() {
    println!("{}", matematik::kare(7));
}

Beklenen çıktı

49

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Modül içindeki <code>pub</code> olmayan bir fonksiyona <code>main</code>'den erişilirse ne olur?

  • Uyarı verir
  • Çalışma anında hata
  • E0603: fonksiyon gizli Doğru cevap
  • Çalışır

Açıklama: Gizlilik varsayılandır; üst modül, alt modülün gizli öğelerini göremez. Alt modül ise üstündekileri görebilir.

2 Modül aç

Soru
____ matematik {
    pub fn kare(x: i32) -> i32 { x * x }
}
Cevap
mod matematik {
    pub fn kare(x: i32) -> i32 { x * x }
}

Açıklama: Modül mod anahtar kelimesiyle tanımlanır.

3 Yol ve hedefi

Kavram Anlamı
matematik::kare Modüldeki fonksiyon
matematik::istatistik İç modül
crate Ağacın kökü
fn ic_yardimci (pub yok) Modül içi

Orta seviye bölümündeki tüm dersler