// 闭包 函数内部访问到了它的外部(局部)变量的值,这个函数和它所处的环境 成为闭包
def addByA(a: Int): Int=>Int = {
def addB(b: Int): Int = {
a + b
}
addB
println(addByA(4))
//<function1> 返回值是函数
println(addByA(4)(1))
//16 返回值是数值
// 使用匿名函数
def addByA1(a: Int): Int=>Int = {
b => a + b
}
// 极简原则
def addByA2(a: Int): Int=>Int = a + _
// 柯里化 scala支持闭包,才会有柯里化 把一个参数列表的多个参数,变成多个参数列表
def addCurrying(a: Int)(b: Int): Int = {
a + b
}
println(addCurrying(1)(3))