package com.scala.A
/**
* 函数柯里化:把一个参数列表的多个参数,变成多个参数列表。
* 以前当一个函数有多个参数列表的时候,就是需要用逗号分隔参数列表
* 柯里化(来源于没过一个数学家的人名,currying):每一层调用的时候只有一个参数
**/
object scala_function_03_2 {
def main(args: Array[String]): Unit = {
//------------------------------------------------------------------------------------------------------------------
/**
* 1)常规表达
* 通用性比较好,适用性比较差
* */
def currying0(a: Int, b: Int) = {
a + b
}
println(currying0(1, 2))
//------------------------------------------------------------------------------------------------------------------
/**
* 2)柯里化表达
* 柯里化与闭包是绑定在一起的,一旦用到了柯里化,底层就用到了闭包
* 反而闭包不一定要求柯里化去书写,但是推荐使用柯里化
**/
def currying1(a: Int)(b: Int):Int= {
a + b
}
println(currying1(1)(2))
//------------------------------------------------------------------------------------------------------------------
}
}