Scala程式設計11 高階函式 重點掌握

2021-10-11 22:46:26 字數 951 閱讀 6399

高階函式,即定義時將引數型別設定為函式,並在定義的地方進行呼叫,在使用時再將需要的函式體直接寫入或通過變數方式傳入進去

第一種:外面定義乙個函式,在使用時直接呼叫指向函式體的變數來呼叫此函式,使用起來和普通函式沒太多差別,直接傳值

如:交換兩個數

# 先定義乙個普通函式,實現兩個數的交換

def swap2num(x:double, y:int):(int,double)=

# 再將此函式賦值給乙個變數, 注意後面的_不可以省略,此步也可以直接省略,直接呼叫也是要以的

val sw2 = swap2num _

#最後利用此變數來呼叫函式並傳入引數

sw2(2.333, 19)

第二種:直接使用,在scala和spark中非常常用,直接把函式體在哪使用定義在**,或是提前將變數定義好,使用時直接傳入進去

即一開始我只是把引數規定好,具體實現由外部傳入或使用時直接把邏輯寫在呼叫的地方,隨傳隨用或隨調隨傳

先定義好高階函式,預留出函式的位置

def sw2n(f1:((double,int)=>(int,double)), x:double, y:int) = {

f1(x,y)

1、隨傳隨用

2、隨調隨傳

考慮到內部處理的函式可能在其它地方還有用,就可以把此函式單獨拿出來定義好,需要時直接把函式名當變數直接傳入就可以了

Scala高階特性 函式式程式設計

目標一 深入理解高階函式 目標二 深入理解隱式轉換 高階函式 概念scala混合了物件導向和函式式的特性,我們通常將可以做為引數傳遞到方法中的表示式叫做函式。在函式式程式語言中,函式是 頭等公民 高階函式包含 作為值的函式 匿名函式 閉包 柯里化等等。作為值的函式 可以像任何其他資料型別一樣被傳遞和...

Scala之函式式程式設計高階

給你乙個集合 val list list 1,2,3,4,abc 請完成如下要求 將集合 list 中的所有數字 1,並返回乙個新的集合 要求忽略掉 非數字 的元素,即返回的 新的集合 形式為 2,3,4,5 object partialfundemo01 模式匹配 def addone2 i an...

Scala高階函式

在scala中,無法直接操縱方法,只能直接操縱函式,所以需要使用 import scala math.val temp ceil val num 3.14 println fun temp num temp的型別是 double double,意為接受double引數並返回double的函式。能夠對...