這是scala中最有用的部分之一。
匹配值
val times = 1times match
使用守衛進行匹配
times match
注意我們是怎樣將值賦給變數』i』的。
在最後一行指令中的_
是乙個萬用字元;它保證了我們可以處理所有的情況。
否則當傳進乙個不能被匹配的數字的時候,你將獲得乙個執行時錯誤。我們以後會繼續討論這個話題的。
參考effective scala 對什麼時候使用模式匹配 和 模式匹配格式化的建議. a tour of scala 也描述了 模式匹配
你可以使用match
來分別處理不同型別的值。
def bigger(o: any): any =}
還記得我們之前的計算器嗎。
讓我們通過型別對它們進行分類。
一開始會很痛苦。
def calctype(calc: calculator) = calc match
(⊙o⊙)哦,太痛苦了。幸好scala提供了一些應對這種情況的有效工具。
Scala模式匹配
1.常量匹配 def constantmatch x int string x match def constantmathtest 輸出結果 one many2.列表匹配 def sequencematch x list int string x match def sequencemathtes...
scala模式匹配
這是scala中最有用的部分之一。匹配值val times 1 times match 使用守衛進行匹配 times match 注意我們是怎樣將值賦給變數 i 的。在最後一行指令中的 是乙個萬用字元 它保證了我們可以處理所有的情況。否則當傳進乙個不能被匹配的數字的時候,你將獲得乙個執行時錯誤。我們...
Scala模式匹配
並且scala還提供了樣例類,對模式匹配進行了優化,可以快速進行匹配。1 匹配字串 todo 匹配字串 定義乙個陣列 val arr array hadoop zookeeper spark storm 隨機取陣列中的一位,使用random.nextint val name arr random.n...