1三、scala模式匹配

一、模式匹配的基礎語法java

二、對類型進行模式匹配數組

三、對Array和List的元素進行模式匹配app

四、case class與模式匹配函數

五、Option與模式匹配spa

一、模式匹配的基礎語法

  Scala提供了match case語法,即模式匹配。替代java的switch case。scala

  二者不一樣,java中switch case僅能匹配變量的值,好比一、二、3等;scala中的match case能夠匹配各類類型,好比變量的類型、集合的元素、有值或無值。對象

  Match case語法:變量 match{ case 值=>語法}。若是值爲下劃線,表明了不知足以上全部狀況下的默認狀況如何處理。此外,match case中,主要一個case分支知足並處理了,就不會繼續判斷下一個case分支了。Java須要用break阻止。blog

  案例成績評價:get

  

  模式匹配中使用if守衛:在case後面的條件中,能夠在值後面加一個if守衛,進行雙重過濾。it

  

  在模式匹配中進行賦值:Scala中,能夠將模式匹配的默認狀況,下劃線替換爲一個變量名,此時模式匹配會將要匹配的值賦值給這個變量,從而能夠在後面的處理語句中使用要匹配的值。(目的是拿到最後一個case _ 的值)

  

二、對類型進行模式匹配

  scala中,模式匹配能夠直接匹配類型,而不是值,java的swich case絕對作不到。

  

三、對Array和List的元素進行模式匹配

  對Array進行模式匹配,分別能夠匹配帶有指定元素的數組、帶有指定個數的數組、以某元素打頭的數組,對LIst進行模式匹配,與Array相似,但須要使用List特有的::操做符。對朋友打招呼實例:

  

  

四、case class與模式匹配

  case class類,中文也稱爲樣例類,相似java的JavaBean的概念。即只定義field,並由scala編譯時自動提供getter和setter方法,可是沒有method。

  case class的主構造函數接受的參數一般不須要使用var或val修飾,Scala自動會使用val修飾。(若是指定var修飾,仍是會按照var來)。

  scala自動爲case class定義了伴生對象,而且定義了apply()方法,該方法接受主構造函數相同的參數,並返回case class對象。

  

五、Option與模式匹配

  Scala中有一種特殊的類型,叫作Option。Option有兩種值,一種是Some,表示有值,一種是None,表示沒有值。

  Option一般會用於模式匹配中,用於判斷某個變量是有值仍是無值,比null更加簡潔明瞭。

  

相關文章
相關標籤/搜索