如果一個函數(shù)的傳入?yún)?shù)為函數(shù)或者返回值是函數(shù),則該函數(shù)即為高階函數(shù)。
為鎮(zhèn)賚等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及鎮(zhèn)賚網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為做網(wǎng)站、成都網(wǎng)站制作、鎮(zhèn)賚網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
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
?