Cargo.toml
- Rust kursu
- Orta seviye
- Ders 78/115
- 4 dk
Cargo.toml ile bağımlılık eklemeyi öğrenirsin.
Cargo.toml
Cargo.toml, paketin kimliğini ve bağımlılıklarını tanımlar. TOML biçimindedir: [bölüm] başlıkları ve anahtar = değer satırları:
[package]
name = "fatura"
version = "0.1.0"
edition = "2021"
[dependencies]
serde = { version = "1", features = ["derive"] }
rand = "0.8"
[dev-dependencies]
pretty_assertions = "1"edition, dilin hangi sürüm kurallarıyla derleneceğini belirler (2015, 2018, 2021, 2024); farklı edition'lardaki crate'ler birlikte çalışabilir.
Cargo.lock
Cargo.lock, çözümlenen her bağımlılığın tam sürümünü kaydeder; böylece herkes aynı derlemeyi alır. Binary projelerde sürüm kontrolüne eklenir. cargo update izin verilen aralıkta en yeni sürümlere geçer, cargo add serde ise bağımlılığı Cargo.toml'a ekler.
$ cargo add rand
$ cargo tree # bağımlılık ağacı
$ cargo update -p randUygulama TOML satırı oku
let girdi = "edition = \"2021\""; metnini split_once('=') ile böl, iki tarafı trim et ve değerdeki tırnakları trim_matches('"') ile at. edition: 2021 biçiminde yazdır.
Başlangıç kodu
fn main() {
// buraya yaz
}Örnek çözüm
fn main() {
let girdi = "edition = \"2021\"";
let (anahtar, deger) = girdi.split_once('=').unwrap();
let anahtar = anahtar.trim();
let deger = deger.trim().trim_matches('"');
println!("{}: {}", anahtar, deger);
}Beklenen çıktı
edition: 2021
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 <code>[dev-dependencies]</code> altındaki bağımlılıklar ne zaman derlenir?
- Her derlemede
- Yalnızca release derlemesinde
- Hiçbir zaman
- Yalnızca testler, örnekler ve benchmark'lar için Doğru cevap
Açıklama: Kütüphaneyi kullananlar dev-dependencies'i indirmez; test araçları için idealdir.
2 Bağımlılık bölümü
[____]
rand = "0.8"
[dependencies]
rand = "0.8"
Açıklama: Çalışma zamanı bağımlılıkları [dependencies] altına yazılır.
3 Anahtar ve anlamı
| Kavram | Anlamı |
|---|---|
name |
Paket adı |
version |
Paket sürümü |
edition |
Dil sürüm kuralları |
[dev-dependencies] |
Test bağımlılıkları |