只對於偏愛的值進行處理,其他值不進行處理
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的子類 編譯器會根據呼...