当前位置: 首页 / 技术干货 / 正文
好程序员大数据培训技术分享Scala系列之高阶函数

2019-11-20

BigData 大数据培训 好程序员 Scala

  好程序员大数据培训技术分享Scala系列之高阶函数

好程序员

  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) "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

好程序员公众号

  • · 剖析行业发展趋势
  • · 汇聚企业项目源码

好程序员开班动态

More+
  • HTML5大前端 <高端班>

    开班时间:2021-04-12(深圳)

    开班盛况

    开班时间:2021-05-17(北京)

    开班盛况
  • 大数据+人工智能 <高端班>

    开班时间:2021-03-22(杭州)

    开班盛况

    开班时间:2021-04-26(北京)

    开班盛况
  • JavaEE分布式开发 <高端班>

    开班时间:2021-05-10(北京)

    开班盛况

    开班时间:2021-02-22(北京)

    开班盛况
  • Python人工智能+数据分析 <高端班>

    开班时间:2021-07-12(北京)

    预约报名

    开班时间:2020-09-21(上海)

    开班盛况
  • 云计算开发 <高端班>

    开班时间:2021-07-12(北京)

    预约报名

    开班时间:2019-07-22(北京)

    开班盛况
IT培训IT培训
在线咨询
IT培训IT培训
试听
IT培训IT培训
入学教程
IT培训IT培训
立即报名
IT培训

Copyright 2011-2023 北京千锋互联科技有限公司 .All Right 京ICP备12003911号-5 京公网安备 11010802035720号