您好,登錄后才能下訂單哦!
如果一個函數(shù)的傳入?yún)?shù)為函數(shù)或者返回值是函數(shù),則該函數(shù)即為高階函數(shù)。
Scala中,函數(shù)是頭等公民,和數(shù)字一樣。不僅可以調(diào)用,還可以在變量中存放函數(shù),也可以作為參數(shù)傳入函數(shù),或者作為函數(shù)的返回值。
在Scala中,你不需要給每一個函數(shù)命名,就像不必給每個數(shù)字命名一樣,將函數(shù)賦給變量的函數(shù)叫做匿名函數(shù)
還可以
在Scala中,方法和函數(shù)是不一樣的,最本質(zhì)的區(qū)別是函數(shù)可以做為參數(shù)傳遞到方法中
case?class?WeeklyWeatherForecast(temperatures: Seq[Double]) {
??private?def?convertCtoF(temp: Double) = temp * 1.8?+ 32
??//方法convertCtoF作為參數(shù)傳入
??def?forecastInFahrenheit: Seq[Double] = temperatures.map(convertCtoF)
}
//返回值為函數(shù)類型:(String, String) => String
def?urlBuilder(ssl: Boolean, domainName: String): (String, String) => String = {
??val?schema =?if?(ssl) "https://"?else?"http://"
??(endpoint: String, query: String) => s"$schema$domainName/$endpoint?$query"
}
val?domainName = "www.example.com"
def?getURL = urlBuilder(ssl=true, domainName)
val?endpoint = "users"
val?query = "id=1"
val?url = getURL(endpoint, query)?// "https://www.example.com/users?id=1": String
?
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。