CodeBlanks Logo Icon CodeBlanks

Cargo.toml

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 rand

Uygulama 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

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

Örnek çözüm

main.rs
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ü

Soru
[____]
rand = "0.8"
Cevap
[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ı

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