0Pricing
Learn Rust Coding · Ders

clap Temelleri

Bağımsız değişkenleri ayrıştırma

clap Temelleri, CoddyKit'te ücretsiz bir Learn Rust Coding dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn Rust Coding öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn Rust Coding kursu toplamda 4 dersten oluşur.

clap Neden Kullanılır?

clap (Komut Satırı Argüman Ayrıştırıcısı), Rust'ta CLI'ler oluşturmak için fiilî standart olan crate'tir.

  • Argümanları, bayrakları ve seçenekleri ayrıştırır
  • --help ve --version seçeneklerini otomatik olarak oluşturur
  • Girdiyi doğrular ve anlaşılır hatalar bildirir

Bu araç olmadan std::env::args() üzerinde elle yineleme yapmanız ve tüm uç durumları kendiniz ele almanız gerekirdi.

Argümanları elle okuma

clap'e başvurmadan önce ham yaklaşımı görmek yararlıdır. std::env::args(), ilk öğesi program adı olan bir yineleyici döndürür.

fn main() {
    let args: Vec<String> = std::env::args().collect();
    println!("Program: {}", args[0]);
    println!("Got {} extra arg(s)", args.len() - 1);
}

clap'i Cargo.toml'a ekleme

clap'i kullanmak için onu bağımlılık olarak bildirirsiniz. derive özelliği, makro tabanlı API'yi etkinleştirir.

  • cargo add clap --features derive

Bu adım terminalinizde çalışır ve projenizin dosyalarını düzenler; bu nedenle burada çalıştırdığımız bir işlem değildir.

[dependencies]
clap = { version = "4", features = ["derive"] }

Oluşturucu API'si

clap'in iki kullanım biçimi vardır. Oluşturucu API'si, yöntem çağrılarını zincirleyerek çalışma zamanında bir Command oluşturur.

use clap::{Command, Arg};

fn main() {
    let cmd = Command::new("greet")
        .arg(Arg::new("name"));
    let matches = cmd.get_matches();
    // access values from matches
}

Konumsal argümanlar

Konumsal bir argüman, bir bayrakla değil sırasına göre sağlanır. Burada name, doğrudan komut satırından okunur.

  • greet Alice, name değerini Alice olarak ayarlar
use clap::{Command, Arg};

fn main() {
    let m = Command::new("greet")
        .arg(Arg::new("name").required(true))
        .get_matches();
    let name = m.get_one::<String>("name").unwrap();
    println!("Hello, {}!", name);
}

İsteğe bağlı bayraklar

Bayrak, doğru/yanlış değerli bir anahtardır. Varlığının bir bool değerini değiştirmesi için ArgAction::SetTrue kullanın.

  • --loud, bayrağı etkinleştirir
use clap::{Command, Arg, ArgAction};

fn main() {
    let m = Command::new("greet")
        .arg(Arg::new("loud").long("loud").action(ArgAction::SetTrue))
        .get_matches();
    let loud = m.get_flag("loud");
    println!("loud = {}", loud);
}

Değer alan seçenekler

Seçenek bir değer alır; örneğin --count 3. Kullanımı kolaylaştırmak için ona bir short ve bir long ad verin.

use clap::{Command, Arg};

fn main() {
    let m = Command::new("greet")
        .arg(Arg::new("count").short('c').long("count"))
        .get_matches();
    if let Some(c) = m.get_one::<String>("count") {
        println!("count = {}", c);
    }
}

Varsayılan değerler

Kullanıcıların bir argümanı belirtmemesine izin vermek için default_value ile ona bir fallback verin.

  • --count eksikse değeri 1 olur
use clap::{Command, Arg};

fn main() {
    let m = Command::new("greet")
        .arg(Arg::new("count").long("count").default_value("1"))
        .get_matches();
    let count = m.get_one::<String>("count").unwrap();
    println!("count = {}", count);
}

Sonucu benzetimle oluşturma

clap kurulu olmasa bile ayrıştırılmış değerlerin nasıl göründüğünü modelleyebiliriz. Aşağıda, clap'in bizim için gerçekleştirdiği mantığı gösteren saf Rust ile yazılmış bir benzetim bulunuyor.

fn main() {
    let name = "Alice";
    let count: u32 = 3;
    for _ in 0..count {
        println!("Hello, {}!", name);
    }
}

Otomatik oluşturulan yardım

clap, argüman üst verilerinizden ücretsiz olarak --help çıktısını oluşturur. Kullanışlı olması için about ve help dizelerini ekleyin.

use clap::{Command, Arg};

fn main() {
    Command::new("greet")
        .about("Greets a person")
        .arg(Arg::new("name").help("Who to greet"))
        .get_matches();
}

Sürüm bayrağı

Bir kez sürüm ayarladığınızda clap, --version seçeneğini otomatik olarak bağlar. crate_version! makrosu sürümü Cargo.toml'dan alır.

use clap::Command;

fn main() {
    Command::new("greet")
        .version("1.0.0")
        .get_matches();
}

Hızlı kontrol

clap temellerini anlayıp anlamadığınızı test edin.

Özet

clap temellerini öğrendiniz:

  • derive özelliğiyle ekleme
  • Oluşturucu API'si Command ve Arg kullanır
  • Konumsal argümanlar sıralıdır; bayraklar SetTrue kullanır; seçenekler değer alır
  • default_value, fallback değerleri sağlar
  • --help ve --version otomatik olarak oluşturulur

Sırada, daha büyük CLI'leri alt komutlarla yapılandıracaksınız.

Sıkça Sorulan Sorular

“clap Temelleri” dersi ücretsiz mi?

Evet — “clap Temelleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn Rust Coding kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn Rust Coding kursu toplamda 4 dersten oluşur.

“clap Temelleri” dersinde ne öğreneceğim?

Bağımsız değişkenleri ayrıştırma Learn Rust Coding ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Learn Rust Coding öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Learn Rust Coding, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“clap Temelleri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Learn Rust Coding dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Learn Rust Coding dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. clap Temelleri
  2. Alt Komutlar
  3. Türetme API'si
  4. Doğrulama ve Yardım
← Learn Rust Coding Sayfasına Dön