13.5 匹配数组
这里的匹配数组不是指匹配类型, 而是指的
要匹配数组的内容, 可以在模式中使用Array
表达式.
package com.atguigu.day11.moshipipei
object MatchArray {
def main(args: Array[String]): Unit = {
val arr: Array[Int] = Array(1, 20, 11, 1)
val res = arr match {
case Array(0) => "Array(0)" // 匹配只有1个元素, 并且元素是0的数组
case Array(0, 1) => "Array(0, 1)" // // 匹配只有2个元素, 并且元素是(0, 1)的数组
// 匹配长度为3的数组, 并把元素一次赋值给 x, y, z
case Array(x, y, z) => "x = " + x + ", y = " + y + ", z = " + z
//case Array(1, _*) => "匹配任何以 1 作为第一个元素的数组"
case Array(1, abc@_*) => println("Array"); abc.mkString(",")
// 匹配长度为3的数组, 第一个必须是1, 最后一个也必须是1, 中间的没有限制
//case Array(1, _, 1) => "1, _, 1"
// 匹配任意数组
case Array(_*) => "匹配任意数组"
case _ => "啥也没有匹配到"
}
println(res)
}
}