模式匹配

12 阅读3分钟

package l1

object matchase01 { def main(args: Array[String]): Unit = { // val code=52 // var province="" // if(code==42){ // province="湖北省" // } else if (code==52){ // province="四川省" // } else{ // province="未知" // } // println(province) val code=12 val province=code match { case 42=>"湖北省" case 52=>"四川省" case _=>"未知" } println(province)

}

}


输入1,输出单词one

输入2,输出单词two

输入3,输出单词three

输入其他,输出单词other

1.如果能精准匹配成功,就会执行后面的代码

2.case _ 它表示可以匹配任意的内容。一定要放在match case 的最后一条。

3.case _ 不能省略:如果匹配不成功,就会报错

package l1

object matchase02 { def main(args: Array[String]): Unit = { //输入1,输出单词one //输入2,输出单词two //输入3,输出单词three //输入其他,输出单词other

//1.如果能精准匹配成功,就会执行后面的代码
//2.case _ 它表示可以匹配任意的内容。一定要放在match case 的最后一条。
//3.case _ 不能省略:如果匹配不成功,就会报错

//1.从键盘获取数字
val code=10
//2.使用matchcase进行匹配
code match {
  case 1=> println("one")
  case 2=> println("two")
  case _=> println("未知")
}

}

}


## match case

1.  匹配变量类型
1.  匹配数据类型
1.  匹配元素的个数
1.  匹配数组元素个数,元素特征

package l1

/* *

  • match case *1. 匹配变量类型 *2. 匹配数据类型 *3. 匹配元素的个数 *4. 匹配数组元素个数,元素特征 */ object matchase04 {

    def matchAeeay(arr:Any):Unit={ arr match { case Array(x,y) => println("匹配到有两个元素的数组",x,y) case Array(1,b,c) => println("匹配到有三个元素的数组,第一个元素是1") 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) matchAeeay(arr1) matchAeeay(arr2) matchAeeay(arr3) }

}

package l1

/* *

  • match case *1. 匹配变量类型 *2. 匹配数据类型 *3. 匹配元素的个数 *4. 匹配数组元素个数,元素特征 */ object matchase04 {

    def matchAeeay(arr:Any):Unit={ arr match { case Array(x,y) => println("匹配到有两个元素的数组",x,y) case Array(1,b,c) => println("匹配到有三个元素的数组,第一个元素是1") 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) matchAeeay(arr1) matchAeeay(arr2) matchAeeay(arr3) }

}

package l1

/* *

  • match case *1. 匹配变量类型 *2. 匹配数据类型 *3. 匹配元素的个数 *4. 匹配数组元素个数,元素特征 *5. 匹配案例类 *6. 变量说明时的匹配 / object matchase06 { def main(args: Array[String]): Unit = { val arr = Array(11,22,33,4,5) //定义3个变量:x,y,z 保存数组中的前三个元素的值 //val x = arr(0) //val y = arr(1) //val z = arr(2) val Array(x,y,z, _)=arr println(x,y,z) } }