函式可以作為乙個引數傳入到乙個方法當中去
def main(args: array[string]): unit =
val myarray = array(1,3,5,7,9).map(myfunc1)
println(myarray.mkstring(","))
}沒有名字的函式即是匿名函式,我們可以通過函式表示式來設定匿名函式
def main(args: array[string]): unit =
1、能夠接受函式作為引數的方法,叫做高階函式
def main(args: array[string]): unit =
def mymethod3(hello:(int,string) => (string,int)):int =
println(mymethod3(func3))
}2、高階函式同樣可以返回乙個函式型別
def main(args: array[string]): unit =
def main(args: array[string]): unit =
柯里化是scala當中面向函式式程式設計導致的一種必然的結果,最終推導而來產生的一種現象
def main(args: array[string]): unit =
println(kery(3)(5))
//柯里化的推導過程,注意方法的返回值不要定義任何的返回值型別
val keryresult = (x:int) => (y:int) =>
def kerymethod(x:int) =
println(kerymethod(20))
println(kerymethod(20)(10))
//注意,方法當中的函式,呼叫了方法的引數,就叫做閉包
}再來看乙個案例
/***
柯里化的應用,比較陣列集合當中兩個對應下標字串是否相等
* @param args
*/def main(args: array[string]): unit =
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...