Last active
December 8, 2015 20:22
-
-
Save makiftutuncu/3b4bb63620124ebe5d27 to your computer and use it in GitHub Desktop.
Scala'da Koşul İfadeleri yazımdaki örnek 4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
val metin = "merhaba" | |
val uzunlukSeviyesi = if (metin.length < 2) 1 else if (metin.length < 4) 2 else 3 | |
uzunlukSeviyesi match { | |
case 1 => println("Çok kısa") | |
case 2 => println("Kısa") | |
// Yukarıdaki hiçbir case uygun değildi, varsayılan case | |
case _ => println("Uzun") | |
} | |
// Veya koşulları case ifadelerine yerleştirmek istersek if'i kullanabiliriz. | |
metin match { | |
// Sıra önemli, önce bu case çalışacak. | |
// Ayrıca if'ten sonra parantez kullanmak zorunda değilsiniz. | |
// Burada m için tür çıkarımı yapılacak, "metin" üzerinde match yapıldığı için m bir String olacak. | |
case m if m.length < 4 => { | |
println("Kısa") | |
} | |
case m: String if m.length < 2 => | |
// match ... case ifadelerinde süslü parantez kullanmak zorunda değilsiniz. | |
println("Çok kısa") | |
case _ => println("Uzun") | |
} | |
// Veya doğrudan metni karşılaştıralım ve cevap için değer üretelim. | |
val metin2 = "slm" | |
val cevap = metin2 match { | |
case "selam" => "Ve aleykümselam." | |
case "merhaba" => "Sana da merhaba." | |
// Bu bir MatchError | |
} | |
val cevap2 = metin2 match { | |
// Artık birden fazla durumu eşleştirebiliyoruz. | |
case "selam" | "slm" => "Ve aleykümselam." | |
case "merhaba" => "Sana da merhaba." | |
// Anlamadığımız için söyleneni aynen iade ediyoruz. :) | |
case _ => metin2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment