Doc test
- Rust kursu
- Orta seviye
- Ders 86/115
- 4 dk
/// 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
fn main() {
// buraya yaz
}Örnek çözüm
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
____ Metni büyük harfe çevirir.
pub fn buyuk_harf(s: &str) -> String {
s.to_uppercase()
}
/// 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 |