Scala模式匹配,case 字符串,case 匹配类型,case 匹配数组,case 匹配List,case 匹配元组,case匹配case class和case object
生活随笔
收集整理的這篇文章主要介紹了
Scala模式匹配,case 字符串,case 匹配类型,case 匹配数组,case 匹配List,case 匹配元组,case匹配case class和case object
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、 模式匹配和樣例類
Scala有一個十分強大的模式匹配機制,可以應用到很多場合:如switch語句、類型檢查等。
并且Scala還提供了樣例類,對模式匹配進行了優化,可以快速進行匹配
1. 匹配字符串
2. 匹配類型
package cn.toto.scala.day2import scala.util.Random/*** Created by toto on 2017/7/1.* 匹配類型*/ object CaseDemo02 extends App {//val v = if(x >= 5) 1 else if(x < 2) 2.0 else "hello"//可以使用不同的類型,可以使用自己定義的類型val arr = Array("hello",1,2.0,CaseDemo)val v = arr(Random.nextInt(4))println(v)v match {case x:Int => println("Int " + x)case y:Double if(y >= 0) => println("Double " + y)case z:String => println("String " + z)case CaseDemo => {println("case demo")}case _ => {println("default")}} }運行的結果有以下幾種情況:
cn.toto.scala.day2.CaseDemo$@5f2050f6 case demo2.0 Double 2.0hello String hello1 Int 1**注意:**case y: Double if(y >= 0) => …
模式匹配的時候還可以添加守衛條件。如不符合守衛條件,將掉入case _中
3. 匹配數組、List、元組
注意:在Scala中列表要么為空(Nil表示空列表)要么是一個head元素加上一個tail列表。
9 :: List(5, 2) :: 操作符是將給定的頭和尾創建一個新的列表
注意::: 操作符是右結合的,如9 :: 5 :: 2 :: Nil相當于 9 :: (5 :: (2 :: Nil))
4. 樣例類
在Scala中樣例類是一中特殊的類,可用于模式匹配。case class是多例的,后面要跟構造參數,case object是單例的
總結
以上是生活随笔為你收集整理的Scala模式匹配,case 字符串,case 匹配类型,case 匹配数组,case 匹配List,case 匹配元组,case匹配case class和case object的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 刺梨价格为什么这么贵?
- 下一篇: 发动机万有特性标定属于什么标定?