目標一:深入理解高階函式
高階函式
1.1概念
scala混合了物件導向和函式式的特性,
我們通常將可以做為引數傳遞到方法中的表示式叫做函式。
在函式式程式語言中,函式是「頭等公民」,
高階函式包含:作為值的函式、匿名函式、閉包、柯里化等等。
1.2作為值的函式(故名思議:函式的值作為返回值)
1.3匿名函式
在scala中,你不需要給每乙個函式命名,沒有將函式賦給變數的函式叫做匿名函式
由於scala可以自動推斷出引數的型別,所以可以寫的精簡一些
還記的神奇的下劃線嗎?這才是終結方式
1.4將方法轉換成函式
在scala中,方法和函式式不一樣的,最本質的區別是函式可以作
為引數傳遞到方法中,但是方法可以別轉換成函式,
神奇下劃線有出現了
1.5柯里化
柯里化指的是原來接受兩個引數的方法變成新的接受乙個引數的方法的過程
第一種方法:def m(x:int)=(y:int)=>x*y
第二種方法:def m(x:int)(y:int) =x*y
下一節介紹隱式轉換和隱士引數
merry christmas
Scala函式特性系列 高階函式
帶函式引數的函式由於是乙個接受函式引數的函式,故被稱為 高階函式,像之前講到的 map 函式就是高階函式。如下例所示 上述 中,函式接受乙個函式 f作為引數,接受乙個 int型別的引數,進行 f v 運算,在下面又給出了 f具體的定義 layout 函式 同樣的,高階函式也可以產出另乙個函式 即返回...
Scala高階特性 函式式程式設計
目標一 深入理解高階函式 目標二 深入理解隱式轉換 高階函式 概念scala混合了物件導向和函式式的特性,我們通常將可以做為引數傳遞到方法中的表示式叫做函式。在函式式程式語言中,函式是 頭等公民 高階函式包含 作為值的函式 匿名函式 閉包 柯里化等等。作為值的函式 可以像任何其他資料型別一樣被傳遞和...
Scala 高階特性之 隱式轉換
引用 scala 官方的話,只有兩種情況會發生隱式轉換 當表示式型別 s 與期盼的型別 t 不相符時.當對乙個物件 b 呼叫 b.methoda 時,methoda 並不存在於 b 物件所屬的類或父類中時.下面用 說明什麼是隱式轉換 class specialperson val name stri...