Scala>scala模式匹配

模式匹配

scala中有一个非常强大的模式匹配机制,可以应用在很多场景:

  • 1.switch语句
  • 2.类型查询
  • 3.使用模式匹配快速获取数据

简单模式匹配

在Java中,有switch关键字,可以简化if条件判断语句。在scala中,可以使用match表达式替代。

语法格式

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

示例

  • 1.从控制台输入一个单词(使用StdIn.readLine方法)
  • 2.判断该单词是否能够匹配以下单词,如果能匹配,返回一句话
  • 3.打印这句话
单词 返回
hadoop 大数据分布式存储和计算框架
zookeeper 大数据分布式协调服务框架
spark 大数据分布式内存计算框架
未匹配 未匹配

参考代码

println("请输出一个词:")
// StdIn.readLine表示从控制台读取一行文本
val name = StdIn.readLine()

val result = name match {
   
    case "hadoop" => "大数据分布式存储和计算框架"
    case "zookeeper" => "大数据分布式协调服务框架"
    case "spark" => "大数据分布式内存计算框架"
    case _ => "未匹配"
}
println(result)

匹配类型

除了像Java中的switch匹配数据之外,match表达式还可以进行类型匹配。如果我们要根据不同的数据类型,来执行不同的逻辑,也可以使用match表达式来实现。

语法格式

变量 match {
   
   case 类型1的变量名: 类型1 => 表达式1
   case 类型2的变量名: 类型2 => 表达式2
   case 类型3的变量名: 类型3 => 表达式3
  ...
   case _ => 表达式4
}

示例

  • 定义一个变量为Any类型,然后分别给其赋值为"hadoop"、1、1.0
  • 定义模式匹配,然后分别打印类型的名称

参考代码

val a:Any = "hadoop&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值