scala之偏函式

2021-10-09 07:18:03 字數 1471 閱讀 3626

只對於偏愛的值進行處理,其他值不進行處理

val list1 = list(1,

2,3,

"a",

true

)// 實現 partialfunction[輸入型別,輸出型別]{}

val f =

new partialfunction[

any,

int]

// 偏函式使用

val result = list1.collect(f)

println(result)

/*

使用模式匹配

*/val list1 = list(1,

2,3,

"a",

true

)// 實現 partialfunction[輸入型別,輸出型別]{}

val f =

new partialfunction[

any,

int]

// 處理方法

override

any)

:int

= v1 match

}// 偏函式使用

val result = list1.collect(f)

println(result)

用一對大括號括起來的乙個或多個case語句就是偏函式

val list1 = list(1,

2,3,

"a",

true

)val result = list1.collect(

) print(result)

如果函式引數為乙個元組時,一般使用偏函式,好處可以直接匹配到元組的值

/*

簡單版*/val map: map[

string

,int

]= map(

"a"-

>97,

"b"-

>98,

"c"-

>99)

// map.foreach(x => )

// 使用偏函式,把偏函式當作普通函式 使用模式匹配

map.foreach()/*

複雜版*/val list: list[

(string,(

string,(

int,

string))

)]= list(

("a",(

"b",(1

,"c"))

),("aa",(

"bb",(

2,"cc"))

))// 不使用偏函式

println(list.map(_._2._2._1)

)// 使用偏函式 list.map 可以省略()

println(list.map(

))

scala之偏函式

object partion 用case定義偏函式 val div3 partialfunction int,int val res partialfunction int,string 組合多個偏函式 val r1 partialfunction int,string val r2 partial...

Scala部分函式 偏函式

例如 def sum x int,y int,z int x y z,當呼叫sum的時候,如果不提供所有的引數,或者只提供某些引數時,比如sum sum 3,int,int sum int,3,4 這樣就生成了所謂的部分應用函式。案例 def showmsg title string content...

scala中的偏函式

case語句 組合 除了可以被編譯為匿名函式 型別是functionx,在scala裡,所有的函式字面量都是乙個物件,這個物件的型別是functionx 還可以非常方便的編譯為乙個偏函式partialfunction!注意 partialfunction同時是function1的子類 編譯器會根據呼...