scala中最大的強大的機制是模式匹配的機制。可以應用到很多場合:如switch語句、型別檢查等。並且scala還提供了樣例類,對模式匹配進行了優化,可以快速進行匹配
package cn.edu.hust.cases
import scala.util.random
object stringdemo
println("hello")
}}package cn.edu.hust.cases
import scala.util.random
object typedemo
}}package cn.edu.hust.cases
object arraymatch extends app
val list=list(1,2,3)
list match
val t=(1,26,9)
t match
}在scala中樣例類是一中特殊的類,可用於模式匹配。case class是多例的,後面要跟構造引數,case object是單例的
package cn.edu.hust.cases
import scala.util.random
//樣例類
case class person(name:string,age:int)
//樣例類
case class life(time:int)
//樣例物件
case object money
object partical extends app
}在scala中option型別樣例類用來表示可能存在或也可能不存在的值(option的子類有some和none)。some包裝了某個值,none表示沒有值。
package cn.edu.hust.option
object optiondemo extends app
println(m)
//還有乙個更好的方法那就是使用下列方法
val m2=map.getorelse("c",0)
println(m2)
}被包在花括號內沒有match的一組case語句是乙個偏函式,它是partialfunction[a, b]的乙個例項,a代表引數型別,b代表返回型別,常用作輸入模式匹配。
package cn.edu.hust.partical
class particalfunctiondemo
//這是乙個普通的函式,裡面有模式匹配
def func2(num:string):int=num match
}object particalfunctiondemo extends app
scala學習之模式匹配
scala中有乙個灰常強大的東西,叫做模式匹配。可以理解為switch,只是比它更加強大。var sign 1 val ch char 模式匹配 更好用的switch ch match和switch不同的是,沒乙個匹配條件後面,不需要break 想到當年寫switch,忘記break的痛苦經歷 不會...
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 的。在最後一行指令中的 是乙個萬用字元 它保證了我們可以處理所有的情況。否則當傳進乙個不能被匹配的數字的時候,你將獲得乙個執行時錯誤。我們...