Crate iskeleti
- Rust kursu
- Orta seviye
- Ders 25/115
- 6 dk
lib.rs ile kütüphane crate'ini kurarsın.
Kütüphane projesi: iskelet
Bu projede kitapları rafta tutan ve arama yapan küçük bir kütüphane crate'i yazacağız. Kütüphane crate'i main yerine başkalarının kullanacağı bir API sunar:
$ cargo new --lib kitaplik
$ tree kitaplik
kitaplik
├── Cargo.toml
└── src
└── lib.rsAlıştırmalarda her şeyi tek dosyada, bir mod kitaplik { .. } bloğu içinde yazacağız; gerçek projede bu içerik src/lib.rs'te durur ve dışarıdan use kitaplik::Kitap; ile kullanılır.
Modül ve görünürlük
Modül içindeki her şey varsayılan olarak gizlidir. Dışarıdan kullanılacak öğeler pub ile işaretlenir; struct'ın kendisi pub olsa bile alanları ayrıca pub olmalıdır:
mod kitaplik {
pub struct Kitap {
pub ad: String,
pub yazar: String,
pub yil: u16,
}
}
use kitaplik::Kitap;İlk sürümde alanları açık bırakıyoruz; bir sonraki derste API'yi kapsülleyeceğiz.
Uygulama İlk kitap
mod kitaplik içinde alanları pub olan Kitap { ad: String, yazar: String, yil: u16 } tanımla. main'de use ile al, Tutunamayanlar / Oğuz Atay / 1972 kitabını oluştur ve ad - yazar (yil) biçiminde yazdır.
Başlangıç kodu
fn main() {
// buraya yaz
}Örnek çözüm
mod kitaplik {
pub struct Kitap {
pub ad: String,
pub yazar: String,
pub yil: u16,
}
}
use kitaplik::Kitap;
fn main() {
let k = Kitap {
ad: String::from("Tutunamayanlar"),
yazar: String::from("Oğuz Atay"),
yil: 1972,
};
println!("{} - {} ({})", k.ad, k.yazar, k.yil);
}Beklenen çıktı
Tutunamayanlar - Oğuz Atay (1972)
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 <code>cargo new --lib</code> hangi dosyayı oluşturur?
- src/main.rs
- lib/mod.rs
- src/kitaplik.rs
- src/lib.rs Doğru cevap
Açıklama: Kütüphane crate'inin kökü src/lib.rs, ikili crate'in kökü src/main.rs'dir. Bir paket ikisini birden içerebilir.
2 Dışarı aç
mod kitaplik {
____ struct Kitap {
pub ad: String,
}
}
mod kitaplik {
pub struct Kitap {
pub ad: String,
}
}
Açıklama: pub, öğeyi modül dışından erişilebilir yapar.
3 Öğe ve görünürlüğü
| Kavram | Anlamı |
|---|---|
struct Kitap (pub yok) |
Yalnızca modül içi |
pub struct Kitap |
Tür dışarıda görünür |
pub ad: String |
Alan dışarıda görünür |
use kitaplik::Kitap |
Kapsama alır |