第26讲:Scala中模式匹配入门

scala 中,模式匹配与消息传递的威力无穷,本节是 模式匹配的入门,主要讲解 模式匹配的基本语法。

scala 中模式匹配使用 match case 的语法,与其他语言如java 的swith 相似,不同的是,scala 既可以接受常量,也可以接受变量,同时对数据类型没有强制要求,既可以是基本类型,也可以是自定义类型。本节主要是常量、变量的内容

一、匹配常量

示例代码

    val result = 10;
    //常量情况
     result match {
      case 1 => println("first")  // 如果 result 等于 1 时,就打印出来
      case 10 => println("second")
     // case 10 => println("second") //不能同时使用 10
      case _ => println("unknow")
    }

其过程分析

result 进行match时,case 有1,10,所有其他,其值就会传过来,进行匹配,如和case 中的值相等,就会结束
case _ 只有上面的所有case 都不匹配时,才执行

二、匹配变量

示例代码

 val result = 10;
    //变量情况,当使用match 时,result被传入后,就将赋予给变量,
    // 由于 此变量为 val的,不可改变,所以申明时,就被赋值,供后面使用
    val data = result match {
      case i if i==1 =>"the first"
      //case a if a !=1 =>"a not 1" 
      case number if number==10 => "the second"
      case _ => "unknow"
    }

其过程分析

result 进行match时,其值就会赋给 变量i ,number,如果变量i 的值 等于 1的情况,此case 后面的case 将不会执行,谨记

参考资料

百度网盘:http://pan.baidu.com/share/home?uk=4013289088#category/type=0
微信号:18610086859
DT大数据微信公众账号:DT_Spark
DT大数据梦工厂交流群:462923555/418110145/437123764

你可能感兴趣的:(scala)