package matchcase
object matchcase01 {
def main(args: Array[String]): Unit = {
println(getProvinceName(11))
println(getProvinceName(42))
println(getProvinceName(12))
}
def getProvinceName(code : Int):String={
code match{
case 42 => "湖北"
case 11 => "北京"
case _ => ""
}
}
}

package matchcase
object matchcase02 {
def main(args: Array[String]): Unit = {
val xiaohong = (100, 100, 100)
val xiaoming = (89, 98)
getScore(xiaohong)
getScore(xiaoming)
getScore((1, 2, 3, 4))
}
def getScore(score: Any): Unit = {
score match {
case (a, b, c) => println(s"元组中有三个元素:a =" + a + " b=" + b + " c=" + c)
case (a, b) => println(s"元组中有两个元素:a=" + a + " b=" + b)
case _ => println("未知")
}
}
}

package matchcase
object matchcase03 {
def main(args: Array[String]): Unit = {
tasType(Array(1,2,3))
tasType((1,2,3,4))
tasType((11,2,3,4))
tasType((11,1,3,4))
}
def tasType(i: Any): Unit = {
i match {
case Array(1,x,y) => println("arr是一个数组,有三个元素,第一个是1")
case Array(1,x,y,z) => println("arr是一个数组,有四个元素,第一个是1")
case Array(x,1,y,z) => println("arr是一个数组,有四个元素,第二个是1")
case _ => println("未知")
}
}
}

package matchcase
object matchcase04 {
case class Circle(radius:Double)
case class Rectangle(width:Double,height:Double)
def getArea(obj:Any):Unit= {
obj match {
case Circle(radius) => println("圆的面积是:"+radius *radius * 3.14)
case Rectangle(width, height) => println("矩形的面积是:"+ width * height)
case _ => println("未知")
}
}
def main(args: Array[String]): Unit = {
getArea(Circle(2))
getArea(Rectangle(2,3))
getArea("abc")
}
}

package matchcase
object matchcase05 {
def main(args: Array[String]): Unit = {
var arr = Array(1,2,3,4)
var a = Array(0)
var b = Array(0)
var c = Array(0)
println("a = "+ a+" b = "+b+" c = "+c)
val Array (x,y,z,_*) = arr
println("x = "+x+" y = "+y+" z = "+z)
}

package matchcase
/**
*写一个函数,参数有连个。一个是月份,一个是日期。返回值是对应的星座
* 1月20日-2月18日 水瓶座
*
*/
object matchcase07 {
def getZodiac(month: Int, day: Int): String = month match {
case 1 if day >= 20 => "水瓶座" //月份是1.并且 日期是>=20 的
case 2 if day <= 18 => "水瓶座" //月份是2.并且 日期是 <=18 的
case 2 if day >= 19 => "双鱼座"
case 3 if day <= 20 => "双鱼座"
case 3 if day >= 21 => "白羊座"
case 4 if day <= 19 => "白羊座"
case 4 if day >= 20 => "金牛座"
case 5 if day <= 20 => "金牛座"
case 5 if day >= 21 => "双子座"
case 6 if day <= 21 => "双子座"
case 6 if day >= 22 => "巨蟹座"
case 7 if day <= 22 => "巨蟹座"
case 7 if day >= 23 => "狮子座"
case 8 if day <= 22 => "狮子座"
case 8 if day >= 23 => "处女座"
case 9 if day <= 22 => "处女座"
case 9 if day >= 23 => "天秤座"
case 10 if day <= 22 => "天秤座"
case 10 if day >= 23 => "天蝎座"
case 11 if day <= 21 => "天蝎座"
case 11 if day >= 22 => "射手座"
case 12 if day <= 21 => "射手座"
case 12 if day >= 22 => "摩羯座"
case _ => "未知"
}
def main(args: Array[String]): Unit = {
println(getZodiac(1, 19))
println(getZodiac(1, 21))
}
}