1. 文章来自:http://www.cnblogs.com/hark0623/p/4196261.html   转载请注明

代码如下:

  1. /**
  2. * 模式匹配
  3. */
  4. case class Class1(param1: String, param2: String)
  5.  
  6. case class Class2(param1: String)
  7.  
  8. object Case {
  9. def main(args: Array[String]) {
  10. //通过模式匹配进行条件判断
  11. val test1: String = "1"
  12. val result1 = test1 match {
  13. case "1" => {
  14. "one"
  15. }
  16. case "2" => "two"
  17. case _ => "other"
  18. }
  19. println(result1)
  20.  
  21. //通过模式匹配进行条件判断,可自定义条件
  22. val test2: Int = 1;
  23. val result2 = test2 match {
  24. case i if i + 1 == 2 => "one"
  25. case i if i + 1 == 3 => "tow"
  26. case _ => "error"
  27. }
  28. println(result2)
  29.  
  30. //通过模式匹配进行类型条件判断
  31. val t3 = 1
  32. println(Test3(t3))
  33.  
  34. //通过模式匹配进行类型条件判断
  35. val t4 = "1"
  36. println(Test3((t4)))
  37.  
  38. //通过模式匹配进行类的判断与执行
  39. val test5 = Class1("1", "2")
  40. ClassMatch(test5)
  41.  
  42. val test6 = Class2("3")
  43. ClassMatch(test6)
  44. }
  45.  
  46. def ClassMatch(classTest: Any): Unit = {
  47. classTest match {
  48. case Class1(param1, param2) => {
  49. println("Class1:" + param1 + "_" + param2)
  50. }
  51. case Class2(param1) => {
  52. println("Class2:" + param1)
  53. }
  54. case _ => println("error")
  55. }
  56. }
  57.  
  58. def Test3(data: Any): String = {
  59. data match {
  60. case x: Int => "Int"
  61. case x: String => "String"
  62. case _ => "unkown"
  63. }
  64. }
  65. }

输出如下:

  1. one
  2. one
  3. Int
  4. String
  5. Class1:1_2
  6. Class2:3

Scala中的match(模式匹配)的更多相关文章

  1. 【Scala篇】--Scala中Trait、模式匹配、样例类、Actor模型

    一.前述 Scala Trait(特征) 相当于 Java 的接口,实际上它比接口还功能强大. 模式匹配机制相当于java中的switch-case. 使用了case关键字的类定义就是样例类(case ...

  2. Programming In Scala笔记-第七章、Scala中的控制结构

    所谓的内建控制结构是指编程语言中可以使用的一些代码控制语法,如Scala中的if, while, for, try, match, 以及函数调用等.需要注意的是,Scala几乎所有的内建控制结构都会返 ...

  3. (数据科学学习手札49)Scala中的模式匹配

    一.简介 Scala中的模式匹配类似Java中的switch语句,且更加稳健,本文就将针对Scala中模式匹配的一些基本实例进行介绍: 二.Scala中的模式匹配 2.1 基本格式 Scala中模式匹 ...

  4. 第3节 Scala中的模式匹配:1 - 5

    7.    模式匹配和样例类 Scala有一个十分强大的模式匹配机制,可以应用到很多场合:如switch语句.类型检查等.并且Scala还提供了样例类,对模式匹配进行了优化,可以快速进行匹配. 7.1 ...

  5. 第74讲:从Spark源码的角度思考Scala中的模式匹配

    今天跟随王老师学习了从源码角度去分析scala中的模式匹配的功能.让我们看看源码中的这一段模式匹配: 从代码中我们可以看到,case RegisterWorker(id,workerHost,.... ...

  6. 从jvm来看,scala中的@究竟是个什么鬼?@模式匹配符号(scala 词法分析 语法分析常用)

    从jvm来看,scala中的@究竟是个什么鬼? 我也是初步尝试来看jvm的类文件,又是初次来分析@,如不对的地方,请各位指正! 先看一下@ 是个什么? object TestScala { def m ...

  7. scala中的Type使用

    trait Base { val name: String } case class S( name: String, age: Int ) extends Base case class F( na ...

  8. Programming In Scala笔记-第十六章、Scala中的List

    本章主要分析Scala中List的用法,List上可进行的操作,以及需要注意的地方. 一.List字面量 首先看几个List的示例. val fruit = List("apples&quo ...

  9. Scala - 快速学习07 - 模式匹配

    Scala中的模式匹配的功能可以应用到switch语句.类型检查.“解构”等多种场合. 简单匹配 Scala的模式匹配最常用于match语句中.Scala的match语句类似Java里的switch. ...

随机推荐

  1. ssi技术初探

    http://blog.sina.com.cn/s/blog_765941620100wiir.html

  2. sh脚本学习之: sh脚本 、sed、awk

    sh脚本 sh命令的批处理文件,支持更复杂的逻辑. Shell中的变量 参数 $0 当前脚本路径 $1....$n 脚本执行对应的第n个参数 条件判断 文件判断 test [op] path e存在 ...

  3. mySQL笔记2

    php主要实现B/S .net IIS java TomCat LAMP: Linux 系统 A阿帕奇服务器 Mysql数据库 Php语言(KE) mysql:c常用代码 create table c ...

  4. 多层神经网络与C++实现

    BP理论部分参考:http://blog.csdn.net/itplus/article/details/11022243 参考http://www.cnblogs.com/ronny/p/ann_0 ...

  5. 前端 解决swiper js 手动滑动一下后不能自动播放

    用户操作swiper之后,是否禁止autoplay.默认为true:停止.如果设置为false,用户操作swiper之后自动切换不会停止,每次都会重新启动autoplay.操作包括触碰,拖动,点击pa ...

  6. NYOJ 106背包问题

    http://acm.nyist.net/JudgeOnline/problem.php?pid=106 背包问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 现 ...

  7. Cannot locate factory for objects of type DefaultGradleConnector, as ConnectorServiceRegistry has been closed.

    现象:更换android studio libs文件夹下的jar包,重新编译代码报错:Cannot locate factory for objects of type DefaultGradleCo ...

  8. Ubuntu14.04server开放rootssh登录权限

    刚安装了Ubuntu 14.04 server的虚拟机,普通帐号可以远程登录,但是root不行,输入密码后一直报错: permission denied 最后发现ssh的配置(/etc/ssh/ssh ...

  9. Spring面试题集

    一.Spring简介       *  Spring框架有哪几部分组成? Spring框架有七个模块组成组成,这7个模块(或组件)均可以单独存在,也可以与其它一个或多个模块联合使用,主要功能表现如下: ...

  10. java面试总结-(hibernate ibatis struts2 spring)

    说说Hibernate对象的三种状态 Hibernate对象有三种状态,分别是:临时态(Transient). 持久态(Persistent).游离态(Detached). 临时状态:是指从对象通过n ...