scala模式匹配-基础使用1.4

23 阅读1分钟

变量声明中的模式匹配****

需求:现在有一个数组Array(1,2,3,4),我希望能定义三个变量,它们的值分别是数组中的第1,2,3个元素的值。

package matchcase

object case06 {
  // 1. for 循环中, 做匹配。
  def main(args: Array[String]): Unit = {
    val m1 = Map(
      "马云 - 阿里巴巴" -> 1964,
      "张一鸣 - 字节跳动" -> 1983,
      "刘强东 - 京东" -> 1974,
      "程维 - 滴滴" -> 1983
    )

    // 请在m1这个Map, 找出所有1983年出生的企业家
    for((key,1983) <- m1){
      println(key)
    }

    for((key,value) <- m1){
      if(value == 1983)
        println(key)
    }

    // m1.foreach{
    //   case (key,value)=>{
    //     if(value == 1983)
    //       println(key)
    //   }
    // }
    }
  }
package matchcase

object case07 {

  def main(args: Array[String]): Unit = {
    //定义一个数组,其中有4个元素
    val arr = Array(1, 2, 3, 4)

    //需求:补充定义三个变量: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)
    //优化:使用matchCase表达式,完成上述需求
    val Array(x, y, z,_*) = arr
    println("x=" + x + " y=" + y + " z=" + z)
    }
  }