Scala模式匹配

2022-09-10 15:12:31 字數 868 閱讀 4873

scala中的模式匹配類似於j**a中的switch語法

但是scala從語法中補充了更多的功能,所以更加強大

模式匹配語法中,採用match關鍵字宣告,每個分支採用case關鍵字進行宣告,當需要匹配時,會從第乙個case分支開始,如果匹配成功,那麼執行對應的邏輯**,如果匹配不成功,繼續執行下乙個分支進行判斷。如果所有case都不匹配,那麼會執行case_分支,類似於j**a 中default語句。

package chapter08

object test01_patternmatchbase

println(y)

// 例項:用模式匹配實現簡單的二元運算

val a=25

val b=13

def matchdualop(op: char): any = op match

println(matchdualop('+'))

println(matchdualop('*'))

println(matchdualop(';'))

}}

如果想要匹配某個範圍的資料,就需要在模式匹配中增加條件守衛。

package chapter08

object test01_patternmatchbase

}}}

匹配常量

scala中,模式匹配可以匹配所有的字面量,包括字串,字元,數字,布林值等等。

匹配型別

list存在泛型擦除,不管case list的泛型是什麼,定義的任何list型別列表都可以與之匹配

匹配陣列

匹配列表

匹配元組

匹配物件及樣例類

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中最有用的部分之一。匹配值val times 1 times match 使用守衛進行匹配 times match 注意我們是怎樣將值賦給變數 i 的。在最後一行指令中的 是乙個萬用字元 它保證了我們可以處理所有的情況。否則當傳進乙個不能被匹配的數字的時候,你將獲得乙個執行時錯誤。我們...