scala的匹配集合

匹配集合
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}, y " ) c a s e ( x , y , 5 ) = > p r i n t l n ( s " 5 {y}") case (x, y, 5) => println(s"三个元素,5结尾的元组: {x}, ${y}, 5")
case _ => println(“未匹配”)
}
在这里插入图片描述
结果:
在这里插入图片描述

发布了145 篇原创文章 · 获赞 338 · 访问量 22万+

猜你喜欢

转载自blog.csdn.net/qq_45765882/article/details/104335118
今日推荐