01 Scala 函数和方法

函数

Scala中函数即对象,沟通函数式编程成与面向对象编程的桥梁就是apply方法。通过apply方法,函数调用能够写成Func()这种函数式编程的风格。

Funcion定义:参数 => 函数体

匿名函数:(x: Int) => x + 1

给函数命名:val addOne = (x: Int) => x + 1

对于匿名函数,当参数可知的情况下,参数列表可省略,只需要提供函数体,需要做的是参数必须用下划线表示,例如:

val salaries = Seq(20000, 70000, 40000)
val newSalaries = salaries.map(_ * 2)

Methods

与Function的不同点:methods通过def定义

方法体的最后一行为返回值,方法不一定需要参数如:

def name: String = System.getProperty("user.name")

Method可以嵌套定义

def factorial(x: Int): Int = {
    def fact(x: Int, accumulator: Int): Int = {
      if (x <= 1) accumulator
      else fact(x - 1, x * accumulator)
    }  
    fact(x, 1)
 }

Method也可以作为参数,当Method作为参数时,scala自动将其转换为Function

case class WeeklyWeatherForecast(temperatures: Seq[Double]) {
  private def convertCtoF(temp: Double) = temp * 1.8 + 32
  def forecastInFahrenheit: Seq[Double] = temperatures.map(convertCtoF) // <-- passing the method convertCtoF
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容