深圳大資料學習:高階函式--【千鋒】

andy888168發表於2019-10-22

深圳大資料學習: 高階函式 -- 【千鋒】

1.1. 概念

如果一個函式的傳入引數為函式或者返回值是函式,則該函式即為高階函式。

1.2. 傳入引數為函式

Scala中,函式是頭等公民,和數字一樣。不僅可以呼叫,還可以在變數中存放函式,也可以作為引數傳入函式,或者作為函式的返回值。

 

1.3. 傳入引數為匿名函式

Scala中,你不需要給每一個函式命名,就像不必給每個數字命名一樣,將函式賦給變數的函式叫做匿名函式

 

還可以

 

 

1.4. 傳入引數為方法(隱式轉換方法到函式)

Scala中,方法和函式是不一樣的,最本質的區別是函式可以做為引數傳遞到方法中

case   class   WeeklyWeatherForecast (temperatures: Seq[Double]) {

   private   def   convertCtoF (temp: Double) = temp * 1.8  + 32
   //方法convertCtoF作為引數傳入
   def  forecastInFahrenheit: Seq[Double] = temperatures. map (convertCtoF)
}

1.5. 返回值為函式

//返回值為函式型別:(String, String) => String
def   urlBuilder (ssl: Boolean, domainName: String): (String, String) => String = {
   val  schema = if  (ssl) "   else   "
  (endpoint: String, query: String) => s "$schema$domainName/$endpoint?$query"
}

val  domainName = "
def  getURL = urlBuilder (ssl= true , domainName)
val  endpoint = "users"
val  query = "id=1"
val  url = getURL (endpoint, query) // " String

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69947096/viewspace-2660986/,如需轉載,請註明出處,否則將追究法律責任。

相關文章