mod tanımı
- Rust kursu
- Orta seviye
- Ders 71/115
- 4 dk
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
fn main() {
// buraya yaz
}Örnek çözüm
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ç
____ matematik {
pub fn kare(x: i32) -> i32 { x * x }
}
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 |