Scala--模式匹配

基本概念

Scala 中模式匹配类似于 Java 中的 switch,但是更加强大

模式匹配语法中,采用match 关键字声明,
每个分支采用case 关键字声明
需要匹配时,会从第一个case 分支开始,
如果匹配成功,那么执行对应的逻辑代码。
如果匹配不成功,继续执行下一个分支继续进行判断,
如果所有case 都不匹配,则会执行case _ 分支,类似与Java 中的default 语句
⭐⭐
在这里插入图片描述

match的细节和注意事项

1)如果所有case都不匹配,那么会执行case _ 分支,类似于Java中default语句
2)如果所有case都不匹配,又没有写case _ 分支,那么会抛出MatchError
3)每个case中,不用break语句,自动中断case
4)可以在match中使用其它类型,而不仅仅是字符
5)=> 等价于 java swtich 的 :
6)=> 后面的代码块到下一个 case, 是作为一个整体执行,可以使用{} 扩起来,也可以不扩。

守卫

⭐⭐⭐
如果想要表达 匹配某个范围的数据,就需要在模式匹配中增加条件守卫
如果 case _ 出现在match 中间,则表示隐藏变量名,即不使用,而不是表示默认匹配。
在这里插入图片描述
如果把 默认条件即 case _ => … 写在最前面
可以在 case _ => … 中加入守卫,先做一个范围性过滤
在这里插入图片描述

模式中的变量

⭐⭐⭐⭐
如果在case 关键字后跟变量名,那么match 前的表达式的值会赋给那个变量
在这里插入图片描述
模式匹配可以有返回值:
返回值就是匹配到的代码块的最后一句话的值

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值