Modül Sistemi
BERK'te her dosya bir modüldür. Modül sistemi, kodunuzu organize etmenin ve yeniden kullanmanın temel yoludur.
Temel Kavramlar
Modül Nedir?
Bir modül, ilgili fonksiyonları, yapıları ve sabitleri içeren bir kod birimidir. Her .berk dosyası otomatik olarak bir modüldür.
// matematik.berk - Bu dosya "matematik" modülüdür
dışa_aktar fonksiyon topla(a: sayı, b: sayı) -> sayı yap
dön a + b
son
dışa_aktar sabit PI = 3.14159
Modül Hiyerarşisi
Modüller dosya sistemi yapısını takip eder:
proje/
├── ana.berk
├── matematik/
│ ├── temel.berk (matematik::temel)
│ ├── geometri.berk (matematik::geometri)
│ └── ileri.berk (matematik::ileri)
└── io/
└── dosya.berk (io::dosya)
Modül Kullanımı
Kullan İfadesi
// Modül içe aktarma
kullan matematik;
// Belirli öğeleri içe aktarma
kullan matematik::topla;
kullan matematik::{topla, çarp, PI};
// Tüm öğeleri içe aktarma
kullan matematik::*;
// Takma ad ile kullanım
kullan matematik::topla olarak toplama;
Modül Yolları
// Alt modül erişimi
kullan matematik::geometri::alan;
// İç içe modüller
kullan matematik::geometri::{alan, çevre, hacim};
Görünürlük
dışa_aktar Anahtar Kelimesi
Varsayılan olarak tüm öğeler özeldir. Dışarıdan erişim için dışa_aktar kullanın:
// Genel fonksiyon - dışarıdan erişilebilir
dışa_aktar fonksiyon hesapla() -> sayı yap
dön dahili_hesaplama()
son
// Özel fonksiyon - sadece bu modülde kullanılabilir
fonksiyon dahili_hesaplama() -> sayı yap
dön 42
son
Yapı ve Enum Görünürlüğü
// Genel yapı
dışa_aktar yapı Nokta yap
x: sayı
y: sayı
son
// Özel yapı
yapı DahiliVeri yap
değer: sayı
son
Modül Organizasyonu
Tek Dosya Modül
// matematik.berk
dışa_aktar fonksiyon topla(a: sayı, b: sayı) -> sayı yap dön a + b son
dışa_aktar fonksiyon çarp(a: sayı, b: sayı) -> sayı yap dön a * b son
Çok Dosya Modül
matematik/
├── temel.berk // matematik::temel
├── geometri.berk // matematik::geometri
└── trigonometri.berk // matematik::trigonometri
// ana.berk
kullan matematik::temel::topla;
kullan matematik::geometri::alan;
Modül Çözümleme
Arama Sırası
BERK derleyicisi modülleri şu sırayla arar:
- Geçerli dizin:
./ - Kaynak dizini:
./src/ - Standart kütüphane:
./stdlib/ - Harici paketler:
~/.berk/packages/
Örnek Çözümleme
kullan matematik::geometri;
// Arama sırası:
// 1. ./matematik/geometri.berk
// 2. ./src/matematik/geometri.berk
// 3. ./stdlib/matematik/geometri.berk
// 4. ~/.berk/packages/matematik/geometri.berk
Standart Kütüphane Modülleri
kullan io; // Giriş/Çıkış işlemleri
kullan metin; // String işlemleri
kullan matematik; // Matematik fonksiyonları
kullan koleksiyonlar; // Liste, HashMap vb.
kullan dosya; // Dosya işlemleri
kullan ağ; // Network işlemleri
En İyi Uygulamalar
- ✅ İlgili kodu grupla: Benzer işlevleri aynı modülde tut
- ✅ Açık isimler kullan: Modül ismi içeriği açıkça belirtmeli
- ✅ Minimal dışa aktarma: Sadece gerekli olanları dışa aktar
- ✅ Döngüsel bağımlılıklardan kaçın: A → B → A yapma
- ✅ Tutarlı yapı: Projedeki tüm modüller benzer yapıda olmalı
Örnekler
Basit Matematik Modülü
// matematik.berk
dışa_aktar sabit PI = 3.14159
dışa_aktar sabit E = 2.71828
dışa_aktar fonksiyon kare(x: sayı) -> sayı yap
dön x * x
son
dışa_aktar fonksiyon küp(x: sayı) -> sayı yap
dön x * x * x
son
Kullanımı
// ana.berk
kullan matematik::{kare, PI};
fonksiyon ana() yap
değişken sonuç = kare(5)
yazdir("Kare: {}", sonuç)
yazdir("Pi: {}", PI)
son