0Pricing
Learn Rust Coding · Ders

Türetme API'si

Yapılardan bağımsız değişkenler

Türetme API'si, CoddyKit'te ücretsiz bir Learn Rust Coding dersidir. Bu, 4 dersinin 3. 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.

Derive API'si

Derive API'si, CLI'nizi bir yapı olarak tanımlamanıza ve clap'in #[derive(Parser)] aracılığıyla ayrıştırıcıyı oluşturmasına olanak tanır.

  • Oluşturucu API'sine göre daha az tekrarlı kod
  • Tür güvenli: alanlar türü belirlenmiş değerlere dönüşür

derive özelliğiyle etkinleştirin.

En basit Parser yapısı

Bir yapıya #[derive(Parser)] ek açıklamasını verin ve main içinde Cli::parse() çağırın. Her alan bir argümandır.

use clap::Parser;

#[derive(Parser)]
struct Cli {
    name: String,
}

fn main() {
    let cli = Cli::parse();
    println!("Hello, {}!", cli.name);
}

Alan konumsal argümana dönüşür

name: String gibi yalın bir alan, zorunlu bir konumsal argümandır. Alan adı, değer adı olur.

use clap::Parser;

#[derive(Parser)]
struct Cli {
    input: String,
    output: String,
}

İsteğe bağlı alanlar

İsteğe bağlı yapmak için bir alanı Option içine alın. Kullanıcı alanı belirtmezse None elde edersiniz.

use clap::Parser;

#[derive(Parser)]
struct Cli {
    #[arg(short, long)]
    config: Option<String>,
}

Bayraklar ve kısa/uzun adlar

#[arg(short, long)] ek açıklaması, alan adından -v ve --verbose seçeneklerini türetir. Bir bool alanı anahtara dönüşür.

use clap::Parser;

#[derive(Parser)]
struct Cli {
    #[arg(short, long)]
    verbose: bool,
}

Türü belirlenmiş değerler

clap, girdiyi alanın türüne ayrıştırır. Bir u32 alanı, sayısal olmayan girdileri otomatik olarak reddeder.

use clap::Parser;

#[derive(Parser)]
struct Cli {
    #[arg(short, long, default_value_t = 1)]
    count: u32,
}

Ayrıştırılmış Cli'yi modelleme

Cli yapısı ayrıştırıldıktan sonra yalnızca veriden oluşur. Bu çalıştırılabilir sürüm, ayrıştırmadan sonra alanları nasıl kullanacağınızı gösterir.

struct Cli {
    name: String,
    count: u32,
    verbose: bool,
}

fn main() {
    let cli = Cli { name: "Alice".to_string(), count: 2, verbose: true };
    for _ in 0..cli.count {
        println!("Hello, {}! (verbose={})", cli.name, cli.verbose);
    }
}

Alt komutları enum'larla modelleme

Derive API'siyle #[derive(Subcommand)] ek açıklamasına sahip bir enum, alt komutları modeller. Her varyant bir komuttur.

use clap::{Parser, Subcommand};

#[derive(Parser)]
struct Cli {
    #[command(subcommand)]
    cmd: Commands,
}

#[derive(Subcommand)]
enum Commands {
    Add { task: String },
    List,
}

Enum alt komutlarını eşleştirme

Cli::parse() sonrasında yönlendirme yapmak için enum'u eşleştirin. Varyant verileri temiz bir şekilde ayrıştırılır.

use clap::Parser;

fn run(cli: Cli) {
    match cli.cmd {
        Commands::Add { task } => println!("add {}", task),
        Commands::List => println!("list"),
    }
}

command ek açıklamasıyla üst veri

CLI üst verilerini ayarlamak için yapıya #[command(name, version, about)] ekleyin. version, sürümü Cargo'dan otomatik olarak okuyabilir.

use clap::Parser;

#[derive(Parser)]
#[command(name = "greet", version, about = "Greets people")]
struct Cli {
    name: String,
}

Enum yönlendirmesini gösterme

Enum üzerinde eşleştirme deseni, derive alt komutlarının temelidir. Aynı fikrin kendi içinde çalışabilen Rust ile yazılmış hâli aşağıdadır.

enum Command {
    Add(String),
    List,
}

fn main() {
    let cmd = Command::Add("Write code".to_string());
    match cmd {
        Command::Add(task) => println!("Added: {}", task),
        Command::List => println!("Listing"),
    }
}

Hızlı kontrol

Derive API'sini anlayıp anlamadığınızı test edin.

Özet

Derive API'si, yapıları ayrıştırıcılara dönüştürür:

  • #[derive(Parser)] ve Cli::parse()
  • Yalın alanlar konumsaldır; Option onları isteğe bağlı yapar
  • #[arg(short, long)] bayrakları ve seçenekleri türetir
  • #[derive(Subcommand)] enum'ları alt komutları modeller

Sırada: doğrulama ve daha iyi yardım çıktısı.

Sıkça Sorulan Sorular

“Türetme API'si” dersi ücretsiz mi?

Evet — “Türetme API'si” 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.

“Türetme API'si” dersinde ne öğreneceğim?

Yapılardan bağımsız değişkenler 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 3. dersidir.

“Türetme API'si” 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