scala中的偏函式

2021-08-05 23:37:39 字數 594 閱讀 4870

case語句(組合)除了可以被編譯為匿名函式(型別是functionx,在scala裡,所有的函式字面量都是乙個物件,這個物件的型別是functionx),還可以非常方便的編譯為乙個偏函式partialfunction!(注意:partialfunction同時是function1的子類)編譯器會根據呼叫處的函式型別宣告自動幫我們判定如何編譯這個case語句(組合)。

case所對應的是不全面的,例如下面的只處理x%2==0的情況,其他情況沒有處理:

package kang

object scala_patialfuction

val isodd:partialfunction[int,string]=

iseven(4)

val evencollection=sample collect iseven

evencollection.foreach(println)

println("-----------")

var numbers=sample map (iseven orelse isodd)

numbers.foreach(println)

}}

scala之偏函式

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

scala之偏函式

只對於偏愛的值進行處理,其他值不進行處理 val list1 list 1,2,3,a true 實現 partialfunction 輸入型別,輸出型別 val f new partialfunction any,int 偏函式使用 val result list1.collect f print...

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...