{ x } else { y } } def max(x:Int, y:Int):Int = { if (x > y) x else y } def max(x:Int, y:Int):Int = if (x > y) x else y def max(x:Int, y:Int) = if (x > y) x else y ͱ͍͑ɺpublicͳϝιουͷ݁Ռܕলུ͠ͳ͍ํ͕͏ਓʹ༏͍͜͠ͱ͕ଟ͍σε 1ߦͰऩ·ΔifจͷதׅހলུՄ 1ߦͰऩ·Δϝιουͷ தׅހলུՄ ݁ՌܕলུՄ
Α͘ݟΔͷOption͔ΒΛऔͬͯ͘Δ࣌ s match { case "abc" => 1 case "def" => 2 case _ => 3 } breakෆཁ defaultͷcase”_” val result = s match { case "abc" => 1 case "def" => 2 case _ => 3 } Λฦ͢͜ͱͰ͖Δ n match { case m if m < 0 => "ෛ" case 0 => "zero" case m if m <= 3 => "3ҎԼ" case _ => "ͨ͘͞Μ" } ݅ॻ͚Δ
People people = get(id); String name = people.name; nullνΣοΫ͠ͳ͍ͱɺψϧϙ͕ग़Δ͔ Կ͔݁ՌΛฦ͢ॲཧΛॻ࣌͘ɺॲཧͰ͖ͳ͔ͬͨ࣌ʹnullΛฦ͢ઃܭͨ͜͠ͱ͋Γ·ͤΜ͔ʁ ͦͷΑ͏ͳ߹ɺݺͼग़͠ݩͰnullνΣοΫΛ͠ͳ͍ͱ ࣮ߦ࣌ʹNullPointerException͕throw͞ΕΔՄೳੑ͕͋Γ·͢ɻ People people = get(id); String name = “”; if(people != null) { name = people.name } -- java -- ָ؍తͳώτ -- Χλ͘
val peopleOpt = get(id) val name = peopleOpt match { case Some(people) => people.name case None => “” } ScalaͰnullͱܾผ͢ΔͨΊʹʮOptionʯʹ͘ΔΜͰฦ͢͜ͱΛ͠·͢ɻ (Java8͔ΒOptionalͰ࣮ݱͰ͖·͕͢…) Option͔ΒΛऔΓग़͢ॲཧΛߦ͏ͷͰ Noneͷ࣌ͷॲཧΛҙࣝ͠ͳ͚ΕͳΒͳ͍
val result = funcA(id) match { case Some(record) => record.customerId match { case Some(customerId) => funcC(customerId) case _ => None } case _ => None //funcAͷॲཧͰσʔλ͕ແ͔ͬͨ࣌ͷΓ } ؒҧͬͯͳ͍͚Ͳɺωετ͕ଟ͍͠ɺ funcAͷॲཧݺͼग़͠Ͱσʔλ͕͋Δ / ແ͍࣌ͷهड़͕ΕͯͯݟͮΒ͍… →ωετ͕͞Βʹਂ͘ͳΔ or தͷॲཧ͕͘ͳΔ΄ͲݟͮΒ͘ͳΔ