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
--helpve--versionseç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.
--counteksikse 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
CommandveArgkullanır - Konumsal argümanlar sıralıdır; bayraklar
SetTruekullanır; seçenekler değer alır default_value, fallback değerleri sağlar--helpve--versionotomatik 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
- clap Temelleri
- Alt Komutlar
- Türetme API'si
- Doğrulama ve Yardım