Scala中的match(模式匹配)
2019独角兽企业重金招聘Python工程师标准>>>
/**
- 模式匹配 */ case class Class1(param1: String, param2: String)
case class Class2(param1: String)
object Case { def main(args: Array[String]) { //通过模式匹配进行条件判断 val test1: String = "1" val result1 = test1 match { case "1" => { "one" } case "2" => "two" case _ => "other" } println(result1)
//通过模式匹配进行条件判断,可自定义条件
val test2: Int = 1;
val result2 = test2 match {case i if i + 1 == 2 => "one"case i if i + 1 == 3 => "tow"case _ => "error"
}
println(result2)//通过模式匹配进行类型条件判断
val t3 = 1
println(Test3(t3))//通过模式匹配进行类型条件判断
val t4 = "1"
println(Test3((t4)))//通过模式匹配进行类的判断与执行
val test5 = Class1("1", "2")
ClassMatch(test5)val test6 = Class2("3")
ClassMatch(test6)
}
def ClassMatch(classTest: Any): Unit = { classTest match { case Class1(param1, param2) => { println("Class1:" + param1 + "_" + param2) } case Class2(param1) => { println("Class2:" + param1) } case _ => println("error") } }
def Test3(data: Any): String = { data match { case x: Int => "Int" case x: String => "String" case _ => "unkown" } } }
转载于:https://my.oschina.net/runningwork/blog/1212705
Scala中的match(模式匹配)相关推荐
- scala中的match详解
Scala中提供了比java,c更加强大的switch语句--match,而且不用担心因为忘记写break语句而发生case穿透 1.更好的switch 与if,类似match也是表达式,如下一个用于 ...
- scala中的match
match的细节和注意事项: 1)如果所有case都不匹配,那么会执行case_分支,类似于Java中的default语句 2)如果所有case都不匹配,又没有写case_分支,那么会抛出MatchE ...
- 【Scala】Scala中的模式匹配、类型参数与隐式转换
1.模式匹配 (1)概述 模式匹配是Scala中非常有特色,非常强大的一种功能.模式匹配,其实类似于Java中的swich case语法,即对一个值进行条件判断,然后针对不同的条件,进行不同的处理.但 ...
- scala中使用Option、Some、None,避免使用null
避免null使用 大多数语言都有一个特殊的关键字或者对象来表示一个对象引用的是"无",在Java,它是null.在Java 里,null 是一个关键字,不是一个对象,所以对它调用任 ...
- scala中何时使用下划线_在Scala中使用下划线
scala中何时使用下划线 Underscore (_) character is reserved in Scala and has multiple usages in the programmi ...
- scala中的sealed
sealed关键字在scala的集合和模式匹配上面应用较多,本篇文章说明sealed的使用场景以及为什么使用sealed. A sealed class cannot have any new sub ...
- Scala中 class和case class的区别
在Scala中存在case class,它其实就是一个普通的class.但是它又和普通的class略有区别,如下: 1.初始化的时候可以不用new,当然你也可以加上,普通类一定需要加new: scal ...
- scala中apply和unapply方法
apply方法 apply方法被称作注入方法,在类的伴生对象中做一个初始化操作 apply方法的参数列表不需要跟构造器的参数列表统一 apply方法是定义在伴生对象中的 当scala中类或者对象有一个 ...
- Scala系列-4、scala中特质、柯里化、闭包等
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 传送门:大数据系列文章目录 目录 scala中特质 特质作为接口使用 特质中放置非抽象的成员 ...
最新文章
- hdu - 1072 Nightmare(bfs)
- 【CentOS】磁盘管理与vim编译器
- 软件技术专业-就业提示(IT类详细岗位分化)
- [转]过度情绪化心智模式的10大特征——看看你有几个?
- 【计算机网络】分组交换网中的时延,丢包和吞吐量
- BZOJ 4736 温暖会指引我们前行 LCT+最优生成树+并查集
- 测试基础-04-用例的编写评审
- vs2013 使用vs调试器,发现调试器显示的数据错误。查看内存,发现内存是正确的。...
- mac如何清空Recent Places
- 55本《大数据浪潮之巅:新技术商业制胜之道》,包邮!
- 简单的C语言程序介绍(重点理解),超详细基础代码解析
- DDR3 内存带宽计算
- php如何让浏览器切换到极速模式,如何识别并切换到浏览器极速模式?
- Centos7做回收站功能,防止误删除
- Google搜索的基本语法
- 石墨烯气凝胶的3D打印-气凝胶(Aerogels)是世界上最轻的材料之一,石墨烯气凝胶(Graphene aerogel)又是该品类中最轻的一种
- python中断输入_在 Python 中接管键盘中断信号的实现方法
- Fragstats景观分析研究
- Android中JNI开发之常见错误
- 数字拼图java小程序_JS写的数字拼图小游戏代码[学习参考]