0Pricing
Learn Rust Coding · Ders

Doğrulama ve Yardım

Özenle hazırlanmış CLI'lar

Doğrulama ve Yardım, CoddyKit'te ücretsiz bir Learn Rust Coding dersidir. Bu, 4 dersinin 4. 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.

CLI'nizi iyileştirme

İyi bir CLI, girdiyi erkenden doğrular ve anlaşılır bir yardım sunar. clap, her ikisini de ek açıklamalar ve değer ayrıştırıcılarıyla destekler.

  • Hatalı değerleri anlaşılır iletilerle reddetme
  • Her argümanı belgeleme

Değer aralıkları

value_parser ile sayısal bir argümanı bir aralıkla sınırlandırın. Aralık dışındaki girdiler otomatik olarak reddedilir.

use clap::Parser;

#[derive(Parser)]
struct Cli {
    #[arg(long, value_parser = clap::value_parser!(u16).range(1..=65535))]
    port: u16,
}

Numaralandırılmış seçenekler

Bir argümanı sabit bir dize kümesiyle sınırlamak için #[derive(ValueEnum)] kullanın.

use clap::{Parser, ValueEnum};

#[derive(Clone, ValueEnum)]
enum Mode { Fast, Safe }

#[derive(Parser)]
struct Cli {
    #[arg(long, value_enum)]
    mode: Mode,
}

Özel doğrulama işlevi

Result döndüren bir işlevi value_parser'a aktarın. clap, bir Err değerini kullanım hatasına dönüştürür.

fn parse_even(s: &str) -> Result<u32, String> {
    let n: u32 = s.parse().map_err(|_| "not a number".to_string())?;
    if n % 2 == 0 { Ok(n) } else { Err("must be even".to_string()) }
}

Doğrulama mantığını deneme

Doğrulama işlevi saf Rust'tır. Çift/tek denetiminin nasıl Ok veya Err döndürdüğünü görmek için çalıştırın.

fn parse_even(s: &str) -> Result<u32, String> {
    let n: u32 = s.parse().map_err(|_| "not a number".to_string())?;
    if n % 2 == 0 { Ok(n) } else { Err("must be even".to_string()) }
}

fn main() {
    println!("{:?}", parse_even("4"));
    println!("{:?}", parse_even("7"));
}

Zorunlu gruplar ve çakışmalar

Argümanlar arasındaki ilişkileri ifade edin. conflicts_with, uyumsuz iki bayrağın birlikte kullanılmasını engeller.

use clap::Parser;

#[derive(Parser)]
struct Cli {
    #[arg(long)]
    quiet: bool,
    #[arg(long, conflicts_with = "quiet")]
    verbose: bool,
}

Alan başına yardım metni

Bir alanın üzerindeki belge yorumu, o alanın yardım metnine dönüşür. Argümanları belgelemenin deyimsel yolu budur.

use clap::Parser;

#[derive(Parser)]
struct Cli {
    /// The file to process
    input: String,
}

Uzun yardım ve kısa yardım

clap, -h için kısa bir özet, --help içinse tam metni gösterir. Gerektiğinde bunları #[arg(short_help, long_help)] ile ayırın.

use clap::Parser;

#[derive(Parser)]
struct Cli {
    #[arg(long, long_help = "A detailed explanation shown only with --help")]
    flag: bool,
}

main'den Result döndürme

Ayrıştırmadan sonra oluşan çalışma zamanı hataları için main'den Result döndürün. ? işleci hataları üst düzeye aktarır ve clap kullanılmayan programlar bunları sıfır olmayan bir çıkış koduyla yazdırır.

fn main() -> Result<(), String> {
    let value = "42";
    let n: i32 = value.parse().map_err(|_| "bad number".to_string())?;
    println!("parsed {}", n);
    Ok(())
}

Özel hata biçimlendirme

clap, kullanım hatalarını otomatik olarak biçimlendirir; ancak bağlama özel iletiler için clap::Error ve cmd.error() kullanarak kendi hatalarınızı oluşturabilirsiniz.

use clap::{CommandFactory, Parser};

#[derive(Parser)]
struct Cli { value: i32 }

fn fail() {
    let mut cmd = Cli::command();
    cmd.error(clap::error::ErrorKind::ValueValidation, "value too large").exit();
}

Saf Rust ile doğrulama özeti

CLI doğrulamasının özü, bir değeri denetlemek ve anlaşılır bir hata bildirmektir. İşte baştan sona örneği.

fn validate_port(p: u32) -> Result<u32, String> {
    if (1..=65535).contains(&p) { Ok(p) }
    else { Err(format!("port {} out of range", p)) }
}

fn main() {
    match validate_port(8080) {
        Ok(p) => println!("using port {}", p),
        Err(e) => eprintln!("error: {}", e),
    }
}

Hızlı kontrol

Doğrulama ve yardımı anlayıp anlamadığınızı test edin.

Özet

Artık daha iyi kullanıcı deneyimi sunan CLI'ler oluşturabilirsiniz:

  • value_parser, aralıkları ve özel kuralları uygular
  • ValueEnum, seçenekleri sınırlar
  • conflicts_with, uyumsuz bayrakları modeller
  • Belge yorumları yardım metnine dönüşür
  • Çalışma zamanı hataları için main'den Result döndürün

clap kursu burada tamamlanıyor.

Sıkça Sorulan Sorular

“Doğrulama ve Yardım” dersi ücretsiz mi?

Evet — “Doğrulama ve Yardım” 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.

“Doğrulama ve Yardım” dersinde ne öğreneceğim?

Özenle hazırlanmış CLI'lar 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 4. dersidir.

“Doğrulama ve Yardım” 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