1.24

模式匹配、偏函数、异常、提取器
模式匹配
作用:判断固定值、类型查询、快速获取数据

简单模式匹配
格式:

变量 match{
case 常量1 => 表达式1
case 常量2 => 表达式2
case 常量3 => 表达式3
case _ => 表达式4 //默认项
}

示例:

def main(args: Array[String]): Unit = {
println("输入一个单词")
val word = StdIn.readLine()
word match {
case "hadoop" => println("大数据分布式存储和计算框架")
case "zookeeper" => println("大数据分布式协调服务框架")
case "spark" => println("大数据分布式内存计算框架")
case _ => println("未匹配")
}
}

匹配类型
格式:

对象名 match{
case 变量名1:类型1 => 表达式1
case 变量名2:类型2 => 表达式2
case _:类型3 => 表达式3//表达式没用到变量名可以使用下划线代替
case _ => 表达式4 //默认项
}

示例:

def main(args: Array[String]): Unit = {
val a:Any = "hadoop"
a match {
case x:String => println(s"${x}是字符串")
case x:Int => println(s"${x}是数字")
case _ => println("未匹配")
}
}

守卫
守卫指在 case 中添加 if 条件判断,这样可以让代码更简洁。

格式:

变量 match{
case 变量名 if 条件1 => 表达式1
case 变量名 if 条件2 => 表达式2
case 变量名 if 条件3=> 表达式3
case _ => 表达式4 //默认项
}

示例:

def main(args: Array[String]): Unit = {
val a = StdIn.readInt()
a match {
case x if x > 0 => println("正数")
case x if x < 0 => println("负数")
case _ => println("是0")
}
}


posted @ 2025-02-07 13:53  七安。  阅读(15)  评论(0)    收藏  举报