3.匹配变量的类型
value match {
case X:Int => println(s"${X} 是Int")
case X:Double => println(s"${X} 是Double")
case _ => println("未知")
}
5.匹配样例类
// 1. 图形
// case class 形式
case class Circle(radius: Double) {}
case class Rectangle(width: Double, height: Double) {}
## 计算一个图形的面积
def getArea(shape: Any): Double = {
shape match {
case Circle(radius) => math.Pi * radius * radius
case Rectangle(width, height) => width * height
case _ => 0.0
}
}
def main(args: Array[String]): Unit = {
// 1. 实例化图形
val circle = Circle(2.0)
// 2. 实例化矩形
val rectangle = Rectangle(2.0, 3.0)
定义一个数组,其中有4个元素
val arr = Array(11, 22, 33, 44, 55, 66)
// 需求:补充定义三个变量x,y,z,分别保持数组arr中的第1,2,3个元素的值。
var x = arr(0)
var y = arr(1)
var z = arr(2)
println("x=" + x + " y=" + y + " z=" + z)
// 优化:使用match case表达式,完成上述需求
val Array(x, y, z, _*) = arr
println("x=" + x + " y=" + y + " z=" + z)