match case 的用法
(1)类似于if else if 这种多分支选择结构,精确匹配值
1.case_是不可能省略的。如果匹配不成功,有没有case_,程序会报错
2.匹配元组元素的数量
3.匹配变量类型
4.匹配元素特征
5.样例类
6.变量声明中的模式
package iterator01
object matchcase06
def main (args:Array[String]):Unit={
def main(args:Array[String]):Unit = {
val a = 11
a match {
case x:Int if a> 10=>println("a是大于10的Int")
case_=>print("a is not Int")
}
}
}
package iterator04
object matchcase04
def main (args:Array[String]):Unit={
testType(Array(1,2,3))
testType(Array(1,2,3,4))
testType(Array(1,2,3,4))
testType(Array(1,2,3,4))
}
def testType(arr:Any):Unit = {
arr match{
case Array(1,x,y)=>println("arr是一个数组,有三个元素。第一个是1")
case Array(1,x,y)=>println("arr是一个数组,有三个元素。第一个是1")
case Array(1,x,y)=>println("arr是一个数组,有三个元素。第一个是1")
}
}
package iterator01
object matchcase
def getZodiac(month:Int,day:Int):String = {
month match {
case 1 if day >=20=>"水瓶座"
case 2 if day<=18=>"水瓶座"
case 2 if day>=19=>"双鱼座"
case 3 if day>=21=>"白羊座"
case 4 if day<=19=>"白羊座"
case _=>"未知"
}
}
def main(args:Array[String]):Unit={
println(getZodiac(1,19))
println(getZodiac(1,21))
println(getZodiac(3,19))
}
}