scala簡要 模式匹配

2021-09-19 20:30:10 字數 396 閱讀 7406

與switch語句不同,scala模式匹配沒有break的問題。如果case中的判斷不能匹配,則捕獲所有的模式來嘗試匹配。變數模式可能與常量表示式衝突,變數必須以小寫字母開頭。如果有乙個小寫字母開頭的常量,則需要把它抱在反引號中。

在型別匹配的時候,必須給出乙個變數名,否則會拿物件本身來進行匹配。由於匹配發生在執行時,jvm中泛型的型別資訊是被擦掉的,所有不能用型別來匹配特定的map型別。正規表示式是適合使用提取器的場景。

1)模式匹配的**更精簡

2)構造時不需new

3)可以免費得到tostring,equals,hashcode 和copy方法

讓所有樣例類都擴充套件某個密封的類或特質是個好做法。被包在花括號內的一組case語句是乙個偏函式,偏函式表示式必須位於編譯器可以推斷返回型別的上下文中。

scala簡要 模式匹配

與switch語句不同,scala模式匹配沒有break的問題。如果case中的判斷不能匹配,則捕獲所有的模式來嘗試匹配。變數模式可能與常量表示式衝突,變數必須以小寫字母開頭。如果有乙個小寫字母開頭的常量,則需要把它抱在反引號中。在型別匹配的時候,必須給出乙個變數名,否則會拿物件本身來進行匹配。由於...

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