Statistical Programming

JavaとScalaの違いその5 ... 最強、ぱた〜んまっちんぐうううう

今回はScalaでmatchingをします!

といってもJavaでswitchを知っている方にはありきたりなので

Javaとの違いだけちょろっと。

まず大きく違うのが、いろいろな型のマッチングが可能です。

コレクションもマッチングでき、型に応じた処理が簡単にできます。

また、型チェックなども容易です。ちなみに最後のmatching3では

条件をif式を用いて定義しています。

 

object MatchMatch extends App {

val list=List(1,3,5)

val list2=List(2,4,6)

def matching(num:List[Int]):String={

 num match{

   case List(2,4,6)=>"you did it!!"

   case List(1,3,5)=>"Sorry,guys"

   case _ =>"白"

 }  

}

println(matching(list))

 

def matching2(obj:Any):Int={

 obj match{

   case _:Int=>1

   case _:String=>2

 }

}

println(matching2(list(2)))

 

def matching3(iVal:Int):String={

 iVal match{

   case n if n>0 =>  {println("I am really glad")

      "Oops!!"}

   case _ => "Yeah"

 }

}

println(matching3(3))

}

 

 

コンソール

 

Sorry,guys

1

I am really glad

Oops!!

 

 

 

※当たり前ながら単純に値を返すだけじゃなくcaseに応じた処理ができます(ここではprintln()のところです)。