没有与参数列表匹配的构造函数实例_8种Scala模式匹配技巧

本文详细介绍了Scala中的8种模式匹配技巧,包括列表提取器、Haskell-like前置、Vararg模式、类型说明符等,帮助开发者更好地理解和运用模式匹配功能。
摘要由CSDN通过智能技术生成

1.列表提取器

列表可以通过多种功能强大的模式匹配来解构。首先是要构建清单。

val countingList = List(1,2,3,42)

使用类似于案例类构造函数的模式从此列表中提取任何元素:

val mustHaveThree = countingList match {   case List(_, _, 3, somethingElse) => s“ 有一个包含3作为第三个元素的列表,之后我发现$ somethingElse”}

此模式将一个列表与四个元素完全匹配,其中我们不关心前两个元素。第三个必须恰好是3就行了,第四个可以是任何东西,之所以将其命名为somethingElse,是因为可以在s插值字符串中重用它。

2. Haskell-Like前置

如果认为清单与以前相同,则可以按照下面的提取清单的开头和结尾:

val startsWithOne = countingList match {    case 1 :: someOtherElements => “此列表以一个开头,其余为$ someOtherElements”}

不要问这怎么可能。即将就是主题了。前置模式在处理列表的代码中非常有用,别忘记啦,但是当事先不知道列表是否为空时,可以这样写:

def processList(num
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值