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 vecargo docaracı 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 veyastruct’ı),//!ise içinde bulunduğu kapsayıcı öğeyi (örneğin crate kökünü veya bir modülü) belgelendirir. Bu nedenle sıradan birletdeyiminin üstünde yanlışlıkla///kullanırsanız derleyiciunused doc comment(kullanılmayan belgelendirme yorumu) uyarısı verir.