Scala模式匹配深入解析
1. 带守卫的模式匹配
在Scala中,我们可以使用守卫(guard)来增强模式匹配的灵活性。以下是一个示例代码:
for (i <- Seq(1,2,3,4)) {
i match {
case _ if i%2 == 0 => println(s"even: $i")
case _ => println(s"odd: $i")
}
}
在这个例子中, if i%2 == 0 就是一个守卫条件。当 i 是偶数时,会执行第一个 case 分支;否则,执行第二个 case 分支。输出结果如下:
odd: 1
even: 2
odd: 3
even: 4
需要注意的是,在 if 表达式中不需要使用括号,这和 for 推导式中的情况是一样的。
2. 对样例类的模式匹配
样例类(case class)在模式匹配中非常有用,它可以让我们进行深度匹配,即检查对象内部的内容。以下是一个示例:
case class Address(street: String, city: String, country: String)
case class Per
Scala模式匹配的深入解析
超级会员免费看
订阅专栏 解锁全文
78

被折叠的 条评论
为什么被折叠?



