irfo
Moderatör
- Katılım
- 7 Ocak 2026
- Mesajlar
- 290
- Tepkime puanı
- 2
- Puanları
- 18
Rust'ta projeler büyüdükçe tüm kodu tek bir dosyada (
Rust'ın modül sistemi diğer dillere göre biraz farklıdır; dosya sistemiyle sıkı bir bağı vardır ancak bazı katı kuralları bulunur.
Rust
Plaintext
Rust
Re-exporting (
main.rs) tutmak imkansız hale gelir. Modül sistemi, kodu mantıksal parçalara ayırmanızı, gizliliği (privacy) yönetmenizi ve kodun yeniden kullanılabilirliğini sağlamanızı sağlar.Rust'ın modül sistemi diğer dillere göre biraz farklıdır; dosya sistemiyle sıkı bir bağı vardır ancak bazı katı kuralları bulunur.
1. Temel Kavramlar: Crate, Module ve Path
- Crate: Bir projenin en üst birimidir (Binary veya Library).
- Module: Bir crate içindeki kod organizasyon birimidir.
- Path: Bir öğeye (struct, fonksiyon) ulaşmak için kullanılan yoldur (
std::collections::HashMapgibi).
2. Modül Tanımlama Yöntemleri
Rust'ta modül oluşturmanın üç ana yolu vardır:A. Aynı Dosya İçinde (Inline)
Küçük parçalar için kodun üst kısmına yazılır.Rust
Kod:
mod bahce {
pub fn bitki_ek() { /* ... */ }
}
B. Farklı Dosyada
src/bahce.rs adında bir dosya oluşturursunuz. main.rs içinde sadece mod bahce; yazarak onu projeye dahil edersiniz.C. Klasör Yapısı (Modern Yöntem)
Eğerbahce modülünün altında başka alt modüller olacaksa bir klasör oluşturursunuz.3. mod.rs vs. Modern Dosya Düzeni
Rust 2018 sürümünden önce, bir klasörü modül yapmak için içinde mutlakamod.rs dosyası olması gerekiyordu. Artık iki seçenek de geçerli:- Eski Stil:
src/bahce/mod.rs(Bu dosya ana modül dosyasidir). - Modern Stil:
src/bahce.rs(dosya) +src/bahce/(klasör içindeki alt modüller).
Plaintext
Kod:
src/
├── main.rs
├── bahce.rs (Bahçe modülünün ana tanımları)
└── bahce/
├── sebzeler.rs (bahce::sebzeler alt modülü)
└── meyveler.rs (bahce::meyveler alt modülü)
4. Gizlilik (Privacy): pub Anahtar Kelimesi
Rust'ta her şey varsayılan olarak özeldir (private). Bir modülün içindekilere dışarıdan erişmek içinpub anahtar kelimesini kullanmalısınız.pub: Herkese açık.pub(crate): Sadece mevcut proje içinde açık.pub(super): Sadece üst modülde açık.
Kod:
mod bahce {
pub fn ek() {} // Dışarıdan çağrılabilir
fn gizli_is() {} // Sadece bu modül içinde çalışır
}
5. use Anahtar Kelimesi ve Re-exporting
Uzun yolları her seferinde yazmamak içinuse ile öğeleri kapsama dahil ederiz.Rust
Kod:
use crate::bahce::sebzeler::Domates;
let d = Domates::new();
pub use): İç kütüphane yapınız karmaşıksa, kullanıcılarınıza daha temiz bir yol sunmak için öğeleri en üst modülde tekrar yayınlayabilirsiniz.Özet
| Yapı | Açıklama |
mod | Bir modülü tanımlar veya bir dosyayı içeri aktarır. |
use | Bir yolu (path) kapsama getirir, kısayol oluşturur. |
pub | Öğeyi erişilebilir kılar. |
crate | Kök modülden (main.rs veya lib.rs) başlayan mutlak yolu temsil eder. |