scala教程:函数柯里化

介绍

柯里化(Currying):将接受多个参数的函数,变成接受一个参数的函数。

应用场景

函数柯里化 是 简化闭包 的一种方式,也就是说,只能应用在闭包上,但闭包可以不用柯里化

案例

闭包写法

def main(args: Array[String]): Unit = {

  def sum(a:Int):(Int) => Int = {
    def fun(b:Int):Int={
      a+b
    }
    fun
  }
  println(sum(1)(2))

}

写法复杂

改成lambda表达式

def main(args: Array[String]): Unit = {
  def sum(a:Int):(Int) => Int = a+_
  println(sum(1)(2))
}

代码简化,但可读性不好

柯里化写法

def main(args: Array[String]): Unit = {
  def sum(a:Int)(b:Int) = {
      a+b
  }
  println(sum(1)(2))
}

简化写法,可读性也好


原文出处:/show_1IX1BllyYdpN.html