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(模式匹配)相关推荐

  1. scala中的match详解

    Scala中提供了比java,c更加强大的switch语句--match,而且不用担心因为忘记写break语句而发生case穿透 1.更好的switch 与if,类似match也是表达式,如下一个用于 ...

  2. scala中的match

    match的细节和注意事项: 1)如果所有case都不匹配,那么会执行case_分支,类似于Java中的default语句 2)如果所有case都不匹配,又没有写case_分支,那么会抛出MatchE ...

  3. 【Scala】Scala中的模式匹配、类型参数与隐式转换

    1.模式匹配 (1)概述 模式匹配是Scala中非常有特色,非常强大的一种功能.模式匹配,其实类似于Java中的swich case语法,即对一个值进行条件判断,然后针对不同的条件,进行不同的处理.但 ...

  4. scala中使用Option、Some、None,避免使用null

    避免null使用 大多数语言都有一个特殊的关键字或者对象来表示一个对象引用的是"无",在Java,它是null.在Java 里,null 是一个关键字,不是一个对象,所以对它调用任 ...

  5. scala中何时使用下划线_在Scala中使用下划线

    scala中何时使用下划线 Underscore (_) character is reserved in Scala and has multiple usages in the programmi ...

  6. scala中的sealed

    sealed关键字在scala的集合和模式匹配上面应用较多,本篇文章说明sealed的使用场景以及为什么使用sealed. A sealed class cannot have any new sub ...

  7. Scala中 class和case class的区别

    在Scala中存在case class,它其实就是一个普通的class.但是它又和普通的class略有区别,如下: 1.初始化的时候可以不用new,当然你也可以加上,普通类一定需要加new: scal ...

  8. scala中apply和unapply方法

    apply方法 apply方法被称作注入方法,在类的伴生对象中做一个初始化操作 apply方法的参数列表不需要跟构造器的参数列表统一 apply方法是定义在伴生对象中的 当scala中类或者对象有一个 ...

  9. Scala系列-4、scala中特质、柯里化、闭包等

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 传送门:大数据系列文章目录 目录 scala中特质 特质作为接口使用 特质中放置非抽象的成员 ...

最新文章

  1. hdu - 1072 Nightmare(bfs)
  2. 【CentOS】磁盘管理与vim编译器
  3. 软件技术专业-就业提示(IT类详细岗位分化)
  4. [转]过度情绪化心智模式的10大特征——看看你有几个?
  5. 【计算机网络】分组交换网中的时延,丢包和吞吐量
  6. BZOJ 4736 温暖会指引我们前行 LCT+最优生成树+并查集
  7. 测试基础-04-用例的编写评审
  8. vs2013 使用vs调试器,发现调试器显示的数据错误。查看内存,发现内存是正确的。...
  9. mac如何清空Recent Places
  10. 55本《大数据浪潮之巅:新技术商业制胜之道》,包邮!
  11. 简单的C语言程序介绍(重点理解),超详细基础代码解析
  12. DDR3 内存带宽计算
  13. php如何让浏览器切换到极速模式,如何识别并切换到浏览器极速模式?
  14. Centos7做回收站功能,防止误删除
  15. Google搜索的基本语法
  16. 石墨烯气凝胶的3D打印-气凝胶(Aerogels)是世界上最轻的材料之一,石墨烯气凝胶(Graphene aerogel)又是该品类中最轻的一种
  17. python中断输入_在 Python 中接管键盘中断信号的实现方法
  18. Fragstats景观分析研究
  19. Android中JNI开发之常见错误
  20. 数字拼图java小程序_JS写的数字拼图小游戏代码[学习参考]

热门文章

  1. 2019年北航OO第二单元(多线程电梯任务)总结
  2. 包含min函数的栈(important)
  3. HTML基础知识(w3school)
  4. centos6.8安装httpd后无法访问
  5. cocos2d-x+lua开发模式下编辑器的选择
  6. 简要介绍BASE64、MD5、SHA、HMAC几种方法。
  7. 从SQL过渡至MongoDB查询对照表
  8. 面对挫折:给即将或已经遭受社会毒打的每一个人
  9. android 通知打开app,Android打开通知栏并回到主页的几种方式
  10. python父亲节礼物_父亲节程序员硬核示爱:你能看懂几条