0Pricing
Learn Rust Coding · Ders

match Derinlemesine İnceleme

Örüntüler ve korumalar

match Derinlemesine İnceleme, 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.

match İfadesi

match, bir değeri bir dizi örüntüyle karşılaştırır ve ilk eşleşen kolu çalıştırır. Bir ifade olduğu için bir değer döndürür.

fn main() {
    let n = 3;
    let label = match n {
        1 => "one",
        2 => "two",
        3 => "three",
        _ => "many",
    };
    println!("{label}");
}

Eksiksizlik

Bir match her olası değeri kapsamalıdır. Joker karakter _, önceki kollarla eşleşmeyen her şeyi yakalayarak eksiksizliği sağlar.

fn main() {
    let x = 42;
    match x {
        0 => println!("zero"),
        _ => println!("nonzero"),
    }
}

Birden Çok Değerle Eşleştirme

Tek bir kolda birden fazla örüntüyle eşleşmek için | kullanın.

fn main() {
    let c = 'e';
    match c {
        'a' | 'e' | 'i' | 'o' | 'u' => println!("vowel"),
        _ => println!("consonant"),
    }
}

Aralık Örüntüleri

..= ile bir değer aralığıyla eşleştirme yapın (uçlar dahil). Sayıları veya karakterleri gruplamak için çok kullanışlıdır.

fn main() {
    let score = 85;
    let grade = match score {
        90..=100 => 'A',
        80..=89 => 'B',
        70..=79 => 'C',
        _ => 'F',
    };
    println!("Grade: {grade}");
}

Eşleştirme Koruyucuları

Koruyucu, bir kola eklenen if koşuludur. Kol yalnızca hem örüntü uyduğunda hem de koruyucu doğru olduğunda eşleşir.

fn main() {
    let pair = (2, -2);
    match pair {
        (x, y) if x + y == 0 => println!("sum is zero"),
        (x, _) if x % 2 == 0 => println!("first is even"),
        _ => println!("no rule"),
    }
}

Örüntülerde Bağlama

Örüntüler, eşleşen parçaları kol gövdesinde kullanılmak üzere değişkenlere bağlayabilir.

fn main() {
    let msg = Some(7);
    match msg {
        Some(n) => println!("got {n}"),
        None => println!("nothing"),
    }
}

Enum'larla Eşleştirme

match, özellikle varyantlar veri taşıdığında enum'larla çok etkilidir.

enum Shape {
    Circle(f64),
    Rectangle(f64, f64),
}

fn area(s: Shape) -> f64 {
    match s {
        Shape::Circle(r) => 3.14159 * r * r,
        Shape::Rectangle(w, h) => w * h,
    }
}

fn main() {
    println!("{}", area(Shape::Rectangle(3.0, 4.0)));
}

_ ve .. ile Yok Sayma

Tek bir değeri yok saymak için _, bir demetin veya yapı türünün geri kalanını yok saymak için .. kullanın.

fn main() {
    let triple = (1, 2, 3);
    match triple {
        (first, ..) => println!("first is {first}"),
    }
}

match'ten Değer Döndürme

match bir ifade olduğundan sonucunu bir değişkene atayabilir veya doğrudan döndürebilirsiniz. Her kol aynı türü üretmelidir.

fn describe(n: i32) -> &'static str {
    match n.cmp(&0) {
        std::cmp::Ordering::Less => "negative",
        std::cmp::Ordering::Equal => "zero",
        std::cmp::Ordering::Greater => "positive",
    }
}

fn main() {
    println!("{}", describe(-5));
}

Kol Sırası Önemlidir

Kollar yukarıdan aşağıya denetlenir; ilk eşleşen kazanır. Özel örüntüleri genel olanlardan önce, joker karakteri ise en sona koyun.

@ ile Aralıkları Bağlama

Bir değeri test etmek ve aynı kolda tam içeriğini korumak için bir aralığı @ işlecine bağlayın.

fn main() {
    let n = 42;
    match n {
        small @ 0..=9 => println!("single digit: {small}"),
        big @ 10..=99 => println!("two digits: {big}"),
        _ => println!("large"),
    }
}

Hızlı Kontrol

(x, y) if x > y gibi bir match koruyucusunun amacı nedir?

Özet

match hakkında derinlemesine öğrendikleriniz:

  • Bir değer döndüren eksiksiz bir ifadedir
  • | birden çok örüntüyle, ..= aralıklarla eşleşir
  • Koruyucular ek if koşulları sağlar
  • Örüntüler veriyi bağlar; _ ve .. parçaları yok sayar
  • Kol sırası önemlidir — ilk eşleşme kazanır

Sıkça Sorulan Sorular

“match Derinlemesine İnceleme” dersi ücretsiz mi?

Evet — “match Derinlemesine İnceleme” 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.

“match Derinlemesine İnceleme” dersinde ne öğreneceğim?

Örüntüler ve korumalar 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.

“match Derinlemesine İnceleme” 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. match Derinlemesine İnceleme
  2. if let ve while let
  3. @ ile Bağlama
  4. Yapı Bozma
← Learn Rust Coding Sayfasına Dön