Scala模式匹配全解析
1. 序列模式
在Scala中,序列模式匹配有多种形式。如果想匹配一个长度不确定的序列,可以将 _* 作为模式的最后一个元素。这个看起来奇特的模式可以匹配序列中任意数量的元素,包括零个元素。以下是一个示例,用于匹配任何以零开头的列表,无论列表长度如何:
expr match {
case List(0, _*) => println("found it")
case _ =>
}
2. 元组模式
元组也可以进行模式匹配。像 (a, b, c) 这样的模式可以匹配任意的三元组。示例如下:
def tupleDemo(expr: Any) =
expr match {
case (a, b, c) => println("matched " + a + b + c)
case _ =>
}
在Scala解释器中使用 tupleDemo 方法,并传入一个三元组,会得到相应的输出:
scala> tupleDemo(("a ", 3, "-tuple"))
matched a 3-tuple
3. 类型模式
类型模式可以方便地替代类型测试和类型转换。以下
超级会员免费看
订阅专栏 解锁全文
1018

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



