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

Yorumlar

Tüm programcılar kodlarını kolay anlaşılır kılmak için çaba gösterir; ancak bazen ek açıklamalar yapmak gerekir. Bu gibi durumlarda programcılar kaynak kodlarına derleyicinin yok sayacağı, fakat kodu okuyan kişilerin faydalı bulabileceği yorumlar (comments) bırakırlar.

İşte basit bir yorum:

#![allow(unused)]
fn main() {
// merhaba, dünya
}

Rust’ta yaygın yorum biçimi iki eğik çizgiyle (//) başlar ve satır sonuna kadar devam eder. Birden fazla satırı bu biçimde yorumlamak için her satırın başına // ekleriz:

#![allow(unused)]
fn main() {
// Burada oldukça karmaşık bir işlem yapıyoruz; bunu açıklamak için birden
// fazla yorum satırına ihtiyaç duyacak kadar uzun! Vay canına! Umarım bu
// yorum burada neler olup bittiğini yeterince açıklar.
}

Yorumlar, kod içeren satırların sonuna da yerleştirilebilir:

Dosya adı: src/main.rs

fn main() {
    let sansli_sayi = 7; // Bugün kendimi şanslı hissediyorum.
}

Ancak yorumların çoğunlukla bu biçimde, yani açıkladıkları kodun hemen üstünde ayrı bir satırda kullanıldığını görürsünüz:

Dosya adı: src/main.rs

fn main() {
    // Bugün kendimi şanslı hissediyorum.
    let sansli_sayi = 7;
}

Rust’ta ayrıca Bölüm 14’teki “Crates.io’da Bir Crate Yayınlama” kısmında ele alacağımız belgelendirme yorumları (documentation comments) adında başka bir yorum türü daha vardır.

Not: Rust’taki yorum biçimleri kullanım amacına göre birbirinden ayrılır:

  • // (Satır yorumu): Kaynak kodu okuyan geliştiricilere yönelik standart yorum biçimidir; derleyici tarafından tamamen yok sayılır.
  • /* ... */ (Blok yorumu): C benzeri dillerden aşina olabileceğiniz bu sözdizimi Rust’ta da geçerlidir ve üstelik iç içe (/* dış /* iç */ dış */) kullanılabilir. Ancak Rust ekosisteminde çok satırlı açıklamalar için de // tercih edilir; /* ... */ daha çok hata ayıklarken bir kod parçasını geçici olarak devre dışı bırakmak için kullanılır.
  • /// ve //! (Belgelendirme yorumları): Sıradan yorumların aksine derleyici ve cargo doc aracı tarafından işlenerek Markdown destekli HTML API belgelerine dönüştürülür; ayrıca içlerindeki örnek kod blokları cargo test çalıştırıldığında otomatik olarak test edilir. /// kendisinden sonra gelen öğeyi (örneğin bir fonksiyonu veya struct’ı), //! ise içinde bulunduğu kapsayıcı öğeyi (örneğin crate kökünü veya bir modülü) belgelendirir. Bu nedenle sıradan bir let deyiminin üstünde yanlışlıkla /// kullanırsanız derleyici unused doc comment (kullanılmayan belgelendirme yorumu) uyarısı verir.