Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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:

  1. Geçerli dizin: ./
  2. Kaynak dizini: ./src/
  3. Standart kütüphane: ./stdlib/
  4. 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