大資料 Scala部分應用函式和偏函式及示例演示

2021-10-25 07:26:51 字數 1953 閱讀 4530

偏函式部分應用函式也稱部分函式。當在呼叫乙個函式時,把這個函式應用到引數中。 如果您傳遞所有預期的引數,則表示您已完全應用它。 如果只傳遞幾個引數並不是全部引數,那麼將返回部分應用的函式。這樣就可以方便地繫結一些引數,其餘的引數可稍後填寫補上。

object test 

showmsg

("警告"

,"當前水位",12

) val title=

"提醒"

def showwateralter=

showmsg

(title,_:string,_:int)

showwateralter

("現在水位",20)}}

結果展示:

偏函式是只對函式定義域的乙個子集進行定義的函式

partialfunction[-a,+b]是乙個特質

//自定義偏函式

val inc =

newpartialfunction

[any, int]

list(1

,2,3

,"four").

collect

(inc)

case語句

val pf:partialfunction[any, int]

=//返回乙個偏函式

list(1

,2,3

,"four").

collect

(pf)

//輸出list(2,3,4)

object test 

val num1=

funpartional

("hello"

) val num2=

funpartional

("world"

) val num3=

funpartional

("gree"

)println

(num1)

println

(num2)

println

(num3)

val words=

list

("hello"

,"world"

,"gree"

,"kn09"

) val ints:list[int]

=words.

collect

(funpartional)

words.

collect

(funpartional)

.foreach

(print)

//等同於

words collect funpartional foreach print

def funtest:partialfunction[string,int]

= val ***s=

list

("male"

,"female"

,"female"

,"女"

,"男"

,"male"

,"f"

,"m"

,"f"

,"男男"

) ***s.

collect

(funtest)

.foreach

(print)

}}

結果展示:

大資料課程 scala部分

1.foldleft,初始值是0,0 2,然後作為初始值 再繼續進行累加。2.伴生類中private 定義的變數,只能在伴生物件中訪問,在別的地方訪問需要在伴生類中定義獲取的方法。3.偏函式 由 和裡面的case組成,並且沒有match,第乙個引數是傳入引數,第二個引數是返回值。4.隱式轉換 5.泛...

scala 部分應用函式與偏函式

部分應用函式 是指乙個函式有n個引數,而我們為其提供少於n個引數,那就得到了乙個部分應用函式.def sum a int,b int,c int a b c 那麼就可以從這個函式衍生出乙個偏函式是這樣的 def p sum sum 1,int,int 於是就可以這樣呼叫p sum 2,3 相當於呼叫...

scala中的部分應用函式和偏函式的區別

本人總結如下 偏函式是只對函式定義域的乙個子集進行定義的函式。scala中用scala.partialfunction t,s 類來表示 比如定義了乙個函式 def sum x int y int x y,當呼叫sum的時候,如果不提供所有的引數或某些引數還未知時,比如sum sum 3 int s...