case パターン1 => 処理1 or 値1
case パターンn => 処理n or 値n
case _ => default処理 or default値
}
ここにもありました、魔法の言葉。
魔法の言葉はおいといて(おい!)
これって、case文みたいなもん?
使い方は、こんな感じです。
scala> val n = 10 n: Int = 10 scala> n match { | case 10 => println("ten") | case _ => () | } ten
文字列でもできちゃったりします。
scala> val str = "hello" str: java.lang.String = world scala> str match { | case "hello" => println("hello world") | case _ => () | } hello worldVBみたいですね。
そー思った人、あまーい( ̄ー ̄)
なんと、関数でもOKなんです。
この例だと、Listの要素をabcdそれぞれに割り当てていて、処理で合計しています。
scala> List(1,2,3,4) match { | case List(a,b,c,d) => a+b+c+d | case _ => () | } res15: AnyVal = 10すごくないですか?
それと、型にマッチさせることもできやがるんですよ、こいつは
scala> val v: Any = "hoge" v: Any = hoge scala> v match { | case i: Int => i * 100 | case s: String => s.size | } res16: Int = 4すごくないですか!?
興奮しすぎたので休みます。
0 件のコメント:
コメントを投稿