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了。
關注微信公眾號:大資料學習與分享,獲取更對技術乾貨