scala学习笔记08-模式匹配:match

模式匹配:match

  • Scala 中的模式匹配类似于Java 中的switch 语法,但是更加强大
  • scala中有match类似于java中的switch语句,模式匹配包含了一系列备选项,每个都开始于关键字 case ;每个备选项都包含了一个模式及一到多个表达式;箭头符号 => 隔开了模式和表达式。
  • match 表达式通过以代码编写的先后次序尝试每个模式来完成计算,只要发现有一个匹配的case,剩下的case不会继续匹配。

注意:

  1. 如果所有case 都不匹配,那么会执行case _ 分支,类似于Java 中default 语句
  2. 如果所有case 都不匹配,又没有写case _ 分支,那么会抛出MatchError
  3. 每个case 中,不用break 语句,自动中断case
  4. 可以在match 中使用其它类型,而不仅仅是字符
  5. => 等价于java swtich 的 “ : ”
  6. => 后面的代码块到下一个case, 是作为一个整体执行,可以使用{} 扩起来,也可以不扩。
	/**
		1. match (类似java switch) 和case 是关键字
		2. 如果匹配成功, 则执行=> 后面的代码块.
		3. 匹配的顺序是从上到下,匹配到一个就执行对应的代码
		4. => 后面的代码块不要写break ,会自动的退出match
		5. 如果一个都没有匹配到,则执行case _ 后面的代码块
	*/
	def listPlus2(n:Any) :   Any ={
   
      n match {
   
        case x:Int => x + 2 //如果x为iint类型的,则返回x+2
        case _ => println("无法匹配")
    }

简单应用match
	object Match01 {
   
	  def main(args: Array[String]): Unit = {
   
		//java中有switch表示另一种分支
		/**
		  * 什么时候选择if.else或者switch
		  * 在java中如果分支条件全是选项的时候,判断的数量大于3时使用switch
		  * 但是在scala中,使用模式匹配的方式,scala中的模式匹配比java中的switch强大,因为在java中switch的条件是有限的
		  */
		var profession = 8
		profession match {
   
		  case 1 => println("警察")
		  cas
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值