匹配集合
scala中的模式匹配,还能用来匹配集合。
匹配数组
示例说明
依次修改代码定义以下三个数组
Array(1,x,y) // 以1开头,后续的两个元素不固定
Array(0) // 只匹配一个0元素的元素
Array(0, …) // 可以任意数量,但是以0开头
Copy
使用模式匹配上述数组
参考代码:
val arr = Array(1, 3, 5)
arr match {
case Array(1, x, y) => println(x + " " + y)
case Array(0) => println("only 0")
case Array(0, _*) => println("0 ...")
case _ => println("something else")
}
结果:
匹配列表
示例说明
依次修改代码定义以下三个列表
List(0) // 只保存0一个元素的列表
List(0,…) // 以0开头的列表,数量不固定
List(x,y) // 只包含两个元素的列表
使用模式匹配上述列表
参考代码
val list = List(0, 1, 2)
list match {
case 0 :: Nil => println(“只有0的列表”)
case 0 :: tail => println(“0开头的列表”)
case x :: y :: Nil => println(s"只有另两个元素${x}, ${y}的列表")
case _ => println(“未匹配”)
}
结果:
匹配元组
示例说明
依次修改代码定义以下两个元组
(1, x, y) // 以1开头的、一共三个元素的元组
(x, y, 5) // 一共有三个元素,最后一个元素为5的元组
使用模式匹配上述元素
参考代码
val tuple = (2, 2, 5)
tuple match {
case (1, x, y) => println(s"三个元素,1开头的元组:1, ${x},
{x}, ${y}, 5")
case _ => println(“未匹配”)
}
结果: