在 Scala 中,match - case
结构类似于其他语言中的switch - case
,但功能更强大。它用于对一个值进行模式匹配,根据值的不同模式执行不同的代码块。
基本语法:
Scala
value match {
case pattern1 => result1
case pattern2 => result2
case _ => defaultResult
}
这里的value
是要进行模式匹配的值,pattern1
、pattern2
等是不同的模式,result1
、result2
等是当值匹配相应模式时返回的结果,最后的_
是一个通配符模式,用于匹配前面没有匹配到的所有情况,类似于switch
语句中的default
分支。
Scala
package test33
object test {
def main(args: Array[String]): Unit = {
val id = "429005202023210042"
// val id = "119005202023210042"
// val id = "339005202023210042"
// val id = "339005202023210042"
val pre =id.substring(0,2).toInt
//如果是 42,输出 湖北
//如果是 11,输出 北京
//如果是 31,输出 上海
//否则,就输出其他
pre match{
case 42 =>println("湖北")
case 11 =>println("北京")
case 31 =>println("上海")
case _ =>println("其他")
}
//细节1:case_的位置 一定要放到最后面
//细节2:case_ 如果没有正确的匹配项就会报错
// val m1 = Map((11, "北京"), (42, "湖北"), (31, "上海")) {
// println(s"籍贯是${m1.get(pre)}")
// if(pre ==42){
// println("湖北")
// }else if(pre==11){
// println("北京")
// }else if(pre ==31){
// println("上海")
// }
}
}