Scala 模式匹配的一些感悟跟重點

2021-10-25 08:50:36 字數 1556 閱讀 5680

//簡單不聊

//todo 常量匹配

def testage(age:

int)=}

testage(20)

//todo 型別匹配

def testtype(x:

any)=}

testtype(list(

"a")

)//型別不考慮

}//todo 匹配集合

private

val list = list(1,

2,5)

list match

//todo 匹配元組

for(tuple <- array((0

,1),

(1,0

),(1

,1),

(1,0

,2))

) println(result)

}

//todo 匹配物件

//類的構造方法中引數使用var或者val宣告

//這個引數就可以直接作為類的屬性使用[圈起來]

//var引數可以修改的,val引數不可以修改

class user(

val name:

string

,val age:

int)

object user

val user= user(

"zhangsan",30

) user match

/**

* @author jinxin li

* @create 2020-10-28 18:50

* 模式匹配

* 馬丁專門為模式匹配的物件匹配建立了特殊的類,樣例類,就是在class前增加case關鍵字

* 這個類可以當做普通類來用,也能生成特殊類使用

* 同時這個類預設實現了可序列化介面

*/object match01_match

}}

說明:

樣例類就是使用case關鍵字宣告的類

構造器中的每乙個引數都成為val,除非它被顯式地宣告為var(不建議這樣做)

object match01_match 

for(

(k,2

)<- map)

}}

object match01_match 

//這裡傳遞出兩個引數顯然是不合適的

//注意1.要使用case

// 2.注意使用花括號

}}

object match01_match 

//使用模式匹配}}

}

對滿足條件的一部分資料處理為偏函式

//一般情況下偏函式就是模式匹配,使用case

object match01_match

println(result)

}}

帶人跟帶娃的一些感悟

首先介紹一下筆者的基本情況,算來算去工作也有七年了,帶人也超過五年了。家裡呢有乙個小朋友,每天都在頭疼該怎麼引導小朋友樹立乙個健康良好的人生觀和價值觀以及習慣。今天正在對著團隊每個人的okr發呆,突然小朋友光著腳跑過來 在家裡規定不能光腳跑,容易拉肚子和著涼 正要講道理,發現其實自己也沒有穿鞋就跑去...

Scala的模式匹配

一 普通的模式匹配 1.概述 2.程式示例 普通的示例 1 packagety2 3object matchcasetest 7 def judgegrade grade string unit 14 15 3.效果 4.if守衛 1 packagety2 3object matchcasetest...

Scala的模式匹配

object demo1 extends 請參考下劃線的理解 object casedemo01 extends object demo3 extends val lst list 3 1 lst match val tup 1 3,7 tup match 在scala中option型別用樣例類來表...