package matchase
object matchase04 {
def matchArray(arr: Any): Unit = {
arr match {
case Array(x,y) => println(s"匹配到有两个元素的数组",x,y)
case Array(1,b,c) => println("两个元素的元组")
case Array(a,b,c) => println("匹配到有三个元素的数组",a,b,c)
case Array(10,_*) => println("第一个元素是10,元素的个数有任意个")
case _ => println("未匹配到")
}
}
def main(args: Array[String]): Unit = {
val arr1 = Array(1,2,3)
val arr2 = Array(2,2,3)
val arr3 = Array(10,2,3,1)
}
}
package matchase
object matchase05 {
case class Circle(r:Double)
case class Rectangle(w:Double,h:Double)
def calculateArea(shape:Any):Double = {
shape match {
case Circle(r) => 3.14 * r * r
case Rectangle(w,h) => w * h
case _ => 0.0
}
}
def main(args: Array[String]): Unit = {
val circle = Circle(2.0)
val rectangle = Rectangle(2.0,3.0)
println(calculateArea(circle))
println(calculateArea(rectangle))
}
}
package matchase
object matchase06 {
def main(args: Array[String]): Unit = {
val arr = Array(11,22,33,4,5)
val Array (x,y,z,_*) = arr
println(x,y,z)
}
}