scala高阶函数之闭包
闭包往往和匿名函数一起使用, 可以读到其它函数内部变量的函数,即例子中的匿名函数可以读取到前面函数中的变量。
是将函数内部与函数外部连接起来的桥梁。
可以理解为在函数内部定义的函数就是闭包
package day3 object demo_closeur { def main(args: Array[String]): Unit = { def mulby(fact:Double) =(x:Double)=>fact * x // 闭包往往与匿名函数搭配使用 // 闭包的使用 val full = mulby(3) // (x:Double)=>3 * x val half = mulby(0.5) // (x:Double)=>0.5 * x println(full(14) + "=====>" + half(14)) // (14:Double)=>3 * 14 // 第二个示例 def a(x:Int,y:Int) = (z:Int) =>x * y *z // 柯里化调用 println(a(2,3)(4)) // 分开调用 val t1 = a(2,3) val t2 = t1(3) println(t2) } }