Menu
CoddyTech

'match' İfadesi

Coddy'nin Rust Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 1 / 66.

match ifadesi, bir değeri farklı kalıplarla karşılaştırmanı ve hangi kalıp eşleşirse ona göre kod çalıştırmanı sağlayan, Rust'ın güçlü bir kalıp eşleştirme aracıdır. Bunu, birden çok koşulu zarif bir şekilde ele alabilen if ifadelerinin daha gelişmiş bir sürümü olarak düşünebilirsin.

İşte bir match ifadesinin temel sözdizimi:

match value {
    pattern1 => code_to_run,
    pattern2 => code_to_run,
    _ => default_code,
}

match içindeki her satıra "kol" denir. =>, örüntüyü bu örüntü eşleştiğinde çalıştırılan koddan ayırır. Alt çizgi _, her şeyle eşleşen özel bir joker karakter örüntüsüdür; diğer örüntülerle eşleşmeyen herhangi bir değer için bir "genel eşleşme" gibidir.

İşte bir sayıyı kontrol eden basit bir örnek:

let number = 2;

match number {
    1 => println!("One"),
    2 => println!("Two"),
    _ => println!("Other"),
}

Rust'ta match ifadeleri kapsamlı olmalıdır; yani olası her değeri ele almalıdır. Bu nedenle joker karakter _ çok önemlidir - açıkça eşleştirilmeyen tüm durumları kapsadığından emin olmanı sağlar.

match bir ifade olduğundan değer de üretebilir. Bir işlevdeki son ifade olduğunda, eşleşen kolun değeri işlevin döndürdüğü değerdir:

fn day_name(day: i32) -> String {
    match day {
        1 => String::from("Monday"),
        2 => String::from("Tuesday"),
        _ => String::from("Another day"),
    }
}

Bu işlev bir String döndürdüğünden, her kol metnini (&str) String::from veya .to_string() ile bir String'e dönüştürür.

challenge icon

Görev

Kolay

num değerini alan ve sayının değerine göre bir dize açıklaması döndüren bir describe_number fonksiyonu yazın.

Farklı sayılar için farklı açıklamalar döndürmek üzere bir match ifadesi kullanın.

Koşullar:

  • Eğer num değeri 0 ise, "zero" döndürün
  • Eğer num değeri 1 ise, "one" döndürün
  • Eğer num değeri 2 ise, "two" döndürün
  • Eğer num değeri 3 ise, "three" döndürün
  • Diğer tüm sayılar için "many" döndürün

Parametreler:

  • num (i32): Tanımlanacak sayı

Döndürür: Sayının dize açıklaması (String)

Kendin dene

fn describe_number(num: i32) -> String {
    // Kodu buraya yazın
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık & Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online Rust derleyicisi