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 的。在最後一行指令中的 是乙個萬用字元 它保證了我們可以處理所有的情況。否則當傳進乙個不能被匹配的數字的時候,你將獲得乙個執行時錯誤。我們...