學好Spark/Kafka必須要掌握的Scala技術點(三)高階函數、方法、柯里化、隱式轉換

5. 高階函數

Scala中的高階函數包含:作為值的函數、匿名函數、閉包、柯里化等,可以把函數作為參數傳遞給方法或函數。

5.1 作為值的函數

定義函數時格式:

val 變數名 = (輸入參數類型和個數) => 函數實現和返回值類型和個數。

=:表示將函數賦給一個變數

=>:左面表示輸入參數名稱、類型和個數,右邊表示函數的實現和返回值類型和參數個數

 

5.2 匿名函數

在Scala中,你不需要給每一個函數命名,沒有將函數賦給變數的函數叫做匿名函數

 

5.3 方法轉換為函數

在Scala中,方法和函數是不一樣的,最本質的區別是函數可以做為參數傳遞到方法中,方法可以被轉換成函數。

 

5.4 柯里化

柯里化指的是將原來接收多個參數的方法或函數變成新的接收一個一個的參數的方法的過程。

 

5.5 隱式轉換

對類進行增強,關鍵字implicit。如Int沒有to(),而RichInt有to(),我們只需要在某個地方將Int轉為RichInt,然後在用的地方import隱式轉換就可以直接使用to(),示例:


除了上述介紹的語法之外,像協變、逆變、actor也需要大家掌握。至於akka,如果大家使用的是老版本Spark,如Spark1.X,也建議結合actor好好學習,Spark老版本通訊框架是用akka和netty結合的,當然後面完全是用netty了。

推薦文章:
大數據常用技術棧
Spark通識


關注微信公眾號:大數據學習與分享,獲取更對技術乾貨