CodeBlanks Logo Icon CodeBlanks

Doc test

/// ile doc test yazmayı öğrenirsin.

Doc test

/// ile yazılan belge yorumlarındaki kod blokları cargo test tarafından çalıştırılır. Böylece belgedeki örnekler hiçbir zaman eskimez:

/// Metni büyük harfe çevirir.
///
/// ```
/// assert_eq!(metin::buyuk_harf("rust"), "RUST");
/// ```
pub fn buyuk_harf(s: &str) -> String {
    s.to_uppercase()
}

cargo doc --open aynı yorumlardan HTML belgeler üretir. Yalnızca gösterilmesi istenen bloklar ```ignore ya da ```no_run ile işaretlenir.

Belge yorumu bölümleri

Geleneksel başlıklar okuyucuya yol gösterir:

/// İki sayıyı böler.
///
/// # Örnekler
/// ```
/// assert_eq!(bol(10, 2), Some(5));
/// ```
///
/// # Hatalar
/// `b` sıfırsa `None` döner.
pub fn bol(a: i32, b: i32) -> Option<i32> { .. }

//! ise içinde bulunduğu modülü ya da crate'i belgeler; genellikle lib.rs'in en üstünde yazılır.

Uygulama Belgelenmiş fonksiyon

mod metin içinde, /// belge yorumunda ``` kod bloğuyla örnek veren pub fn buyuk_harf(s: &str) -> String yaz. main'de metin::buyuk_harf("rust") sonucunu yazdır.

Başlangıç kodu

main.rs
fn main() {
    // buraya yaz
}

Örnek çözüm

main.rs
mod metin {
    /// Metni büyük harfe çevirir.
    ///
    /// ```
    /// assert_eq!(metin::buyuk_harf("rust"), "RUST");
    /// ```
    pub fn buyuk_harf(s: &str) -> String {
        s.to_uppercase()
    }
}

fn main() {
    println!("{}", metin::buyuk_harf("rust"));
}

Beklenen çıktı

RUST

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Doc test hangi crate'ler için çalışır?

  • Tüm dosyalar
  • Hiçbiri, elle çalıştırılır
  • Kütüphane crate'leri Doğru cevap
  • Yalnızca binary crate'ler

Açıklama: Doc testler, kütüphaneyi dışarıdan kullanan ayrı küçük programlar olarak derlenir.

2 Belge yorumu

Soru
____ Metni büyük harfe çevirir.
pub fn buyuk_harf(s: &str) -> String {
    s.to_uppercase()
}
Cevap
/// Metni büyük harfe çevirir.
pub fn buyuk_harf(s: &str) -> String {
    s.to_uppercase()
}

Açıklama: /// sonraki öğeyi belgeler ve içindeki kod blokları test edilir.

3 Yazım ve anlamı

Kavram Anlamı
/// Öğe belgesi
//! Modül belgesi
```ignore Çalıştırılmaz
cargo doc HTML belge üretir

Orta seviye bölümündeki tüm dersler