1、代码
package com.yy.base
/**
* Scala 模式匹配初步
*
*/
object PatternMatchTest extends App {
println("------基本用法------")
val data = 2
data match{
case 1 => println("1......")
case 2 => println("2......")
case _ => println("not matched......")
}
println("------添加守卫条件------")
for(i <-1 to 10){
i match{
case 4 => println("4......")
case num if(num%4==0) => println(num + "被4整除")
case num if(num%5==0) => println(num + "被5整除")
case 10 => println("10......")
case _ =>
}
}
println("------foreach------")
"Hello Scala".foreach {
x => println(
x match{
case ' ' => "空格"
case ch => "字符:" + ch
}
)
}
}
2、结果
------基本用法------
2......
------添加守卫条件------
4......
5被5整除
8被4整除
10被5整除
------foreach------
字符:H
字符:e
字符:l
字符:l
字符:o
空格
字符:S
字符:c
字符:a
字符:l
字符:a
从结果可以看出:scala 模式匹配不同于java中的switch:需要使用break控制,而scala中不需要。