码迷,mamicode.com
首页 > 其他好文 > 详细

第26讲: Scala中的模式匹配入门实战详解

时间:2016-02-14 15:37:37      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:scala 模式匹配

在scala中使用match表达式进行模式匹配,和其他语言中的switch语句的功能类型。但是match的功能更强大

我们先看一个简单的例子

object HelloPatternMatch {
  def main(args: Array[String]): Unit = {
    var data : Int = 1
    
    data match {
      case 1 => println("one")
      case 2 => println("two")
      case _ => println("others")
    }
  }
}

定义一个变量data,对data的值进行模式匹配。

case语句逐个的匹配data的值,命中了即执行=> 后的操作。 

case _ 代表 else选项 。 

每项case结束后,无需添加break语句。只要命中一个case,后续自动跳出匹配。如下:

scala>     val data : Int = 1
data: Int = 1
scala>
     |     data match {
     |       case 1 => println("one")
     |       case 1 => println("another_one")
     |       case 2 => println("two")
     |       case _ => println("others")
     |     }
<console>:15: warning: unreachable code
             case 1 => println("another_one")
                              ^
one

scala>

match 语句是一个表达式,表达式的返回值即是case的返回值。


我们看看如下的另一种写法

    val resutl = data match {
      case i if i ==1 => "one"
      case number if number ==2 => "two"
      case _ => "others"
    }


case 后面定义了一个常量 i 和 number 该常量在进行匹配的时候赋值。并且该常量可以再次引用。

例如

    "Spark! ".foreach { x => println(
        x match {
        case ‘ ‘ => "space"
        case ch => "Char:" + ch
        }
      )
    }


本文出自 “叮咚” 博客,请务必保留此出处http://lqding.blog.51cto.com/9123978/1741902

第26讲: Scala中的模式匹配入门实战详解

标签:scala 模式匹配

原文地址:http://lqding.blog.51cto.com/9123978/1741902

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!