match İfadeleri
Biçime göre dallanın
match İfadeleri, CoddyKit'te ücretsiz bir Scala for Backend Engineering & Functional Programming 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, Scala for Backend Engineering & Functional Programming öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Scala for Backend Engineering & Functional Programming kursu toplamda 4 dersten oluşur.
match Nedir?
match, Scala'nın güçlü dallanma yapısıdır. Buna bir değer ve bir dizi case deseni verirsiniz; ilk eşleşen dalı çalıştırır.
Bunu, switch deyiminin daha yetenekli ve ifade tabanlı bir sürümü olarak düşünebilirsiniz.
Temel Söz Dizimi
value match { case pattern => result } şeklinde yazarsınız. Her case, bir deseni ve bu desen eşleştiğinde çalıştırılacak kodu tanımlar.
match bir ifade olduğundan, bütün yapı bir değer döndürür.
object Main {
def main(args: Array[String]): Unit = {
val n = 2
val word = n match {
case 1 => "one"
case 2 => "two"
case 3 => "three"
}
println(word)
}
}Joker Durumu
Alt çizgi _, her şeyle eşleşen bir joker karakterdir. Bunu sonda, tüm durumları yakalayan varsayılan seçenek olarak kullanın.
Bu seçenek olmadan eşleşmeyen bir değer, çalışma zamanında MatchError oluşturur.
object Main {
def main(args: Array[String]): Unit = {
val n = 9
val word = n match {
case 1 => "one"
case 2 => "two"
case _ => "many"
}
println(word)
}
}Dizelerle Eşleştirme
Desenler sayılarla sınırlı değildir. Dize sabitlerini doğrudan eşleştirebilirsiniz.
object Main {
def main(args: Array[String]): Unit = {
val cmd = "start"
val msg = cmd match {
case "start" => "Starting up"
case "stop" => "Shutting down"
case _ => "Unknown command"
}
println(msg)
}
}Eşleştirme Bir Değer Döndürür
Her dal bir değer ürettiğinden, match sonucunu bir val'a atayabilir veya doğrudan kullanabilirsiniz.
Bu, kodunuzu temiz tutar ve değiştirilebilir değişkenlere olan ihtiyacı ortadan kaldırır.
object Main {
def main(args: Array[String]): Unit = {
val light = "red"
println(s"Action: " + (light match {
case "red" => "stop"
case "green" => "go"
case _ => "caution"
}))
}
}Durumları Birleştirme
| (dikey çizgi) kullanarak tek bir durumda birden fazla değeri eşleştirebilirsiniz. Listelenen tüm değerler aynı dala yönlendirilir.
object Main {
def main(args: Array[String]): Unit = {
val day = "Sat"
val kind = day match {
case "Sat" | "Sun" => "weekend"
case _ => "weekday"
}
println(kind)
}
}Bir İşlevde Eşleştirme
Yaygın bir yaklaşım, işlev gövdesinin tamamını tek bir match ifadesi yapmaktır. Eşleşen sonuç, dönüş değeri olur.
object Main {
def describe(n: Int): String = n match {
case 0 => "zero"
case 1 => "one"
case _ => "other"
}
def main(args: Array[String]): Unit = {
println(describe(0))
println(describe(5))
}
}Bütün Değeri Bağlama
Joker durumunda case other => kullanarak eşleşen değeri bir ada bağlayabilirsiniz. Ardından bu dalda other adını kullanabilirsiniz.
object Main {
def main(args: Array[String]): Unit = {
val n = 42
val result = n match {
case 0 => "nothing"
case other => s"got $other"
}
println(result)
}
}Sıra Önemlidir
Durumlar yukarıdan aşağıya sınanır ve ilk eşleşme kazanır. Daha özel desenleri genel desenlerden önce yerleştirin.
Çok erken yerleştirilen bir joker, altındaki durumları gölgede bırakır.
object Main {
def main(args: Array[String]): Unit = {
val n = 1
val msg = n match {
case 1 => "specific one"
case _ => "anything else"
}
println(msg)
}
}Eşleştirme Neden Kullanılır?
Desen eşleştirme Scala'nın merkezindedir, çünkü:
- Çoklu dallanma için okunması kolaydır
- Bir ifade olarak değer döndürür
- Türlere, veri yapılarına ve koruyuculara ölçeklenebilir
- Derleyici tarafından eksiksizlik açısından denetlenebilir
Hepsini Bir Araya Getirme
Burada sabit değerler, birleştirilmiş bir durum ve varsayılan seçenek kullanan küçük bir sınıflandırıcı yer alıyor.
object Main {
def grade(score: Int): String = score match {
case 10 | 9 => "excellent"
case 8 | 7 => "good"
case _ => "keep trying"
}
def main(args: Array[String]): Unit = {
println(grade(9))
println(grade(7))
println(grade(3))
}
}Kısa Kontrol
match ifadelerini ne kadar anladığınızı test edin.
Özet
match yapısının temellerini öğrendiniz:
- Söz dizimi
value match { case pattern => result }şeklindedir _, tüm durumları yakalayan joker karakterdir- Değerleri
|ile birleştirebilirsiniz match, değer döndüren bir ifadedir- Durumlar yukarıdan aşağıya denenir; ilk eşleşme kazanır
Yapay zeka eğitmeniyle Scala öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 39
- Dersler
- 143
Sıkça Sorulan Sorular
“match İfadeleri” dersi ücretsiz mi?
Evet — “match İfadeleri” 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 Scala for Backend Engineering & Functional Programming kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Scala for Backend Engineering & Functional Programming kursu toplamda 4 dersten oluşur.
“match İfadeleri” dersinde ne öğreneceğim?
Biçime göre dallanın Scala for Backend Engineering & Functional Programming 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.
Scala for Backend Engineering & Functional Programming öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Scala for Backend Engineering & Functional Programming, 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 İfadeleri” 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 Scala for Backend Engineering & Functional Programming dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Scala for Backend Engineering & Functional Programming 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.