1、定義:
當乙個函式包含其他函式作為其引數或者返回結果為乙個函式時,該函式被稱為高階函式;
2、不採用高階函式,使用遞迴實現下面功能:
//2的a次方
def poweroftwo(a:int):int=
//計算乙個整數到另乙個整數的連加和
def sumints(x:int,y:int):int=
//計算乙個整數到另乙個整數的平方和
def sumquarts(x:int,y:int):int=
//計算乙個整數到另乙個整數2的x次方和
def sumpoweroftwo(x:int,y:int):int=
println(sumints(1,3))
println(sumquarts(1,3))
println(sumpoweroftwo(1,2))
}
6
146
3、上面三種情況使用的邏輯可以抽象為int=>int形的函式f,所以可以統一寫成下面的高階函式:
//2的a次方
def poweroftwo(a:int):int=
def sum(f:int=>int,x:int,y:int):int=
println(sum(a=>a,1,3))
println(sum(a=>a*a,1,3))
println(sum(a=>poweroftwo(a),1,2))
}
6
146
Scala高階函式
在scala中,無法直接操縱方法,只能直接操縱函式,所以需要使用 import scala math.val temp ceil val num 3.14 println fun temp num temp的型別是 double double,意為接受double引數並返回double的函式。能夠對...
Scala 高階函式
import scala.math.val num 3.14val func ceil 意味著確實指的是這個函式,而不是忘記了傳引數 func是乙個函式變數,內容儲存的是個函式 val v func num println v val arr array 1.0,3.14,4 map func 將函...
Scala高階函式
高階函式 higher order function 高階函式可以使用其他函式作為引數,進入方法內使用,或者使用函式輸出結果作為引數。object demo 函式1,返回當前時間納秒數,long型別 def time t long 可以簡寫為t long,long表示如果傳入引數為方法時返回值為lo...