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)
  }
}
Copyright © 尚硅谷大数据 2019 all right reserved,powered by Gitbook
该文件最后修订时间: 2019-04-13 08:34:26

results matching ""

    No results matching ""