谈谈scala的闭包、柯里化、高阶函数
如果一个函数,访问到了它的外部(局部)变量的值,那么这个函数和他所处的环境,称为闭包。
闭包在函数式编程中是一个重要的概念,广泛用于高阶函数、柯里化等技术中。
函数柯里化:把一个参数列表的多个参数,变成多个参数列表;
函数柯里化,其实就是将复杂的参数逻辑变得简单化,函数柯里化一定存在闭包。
高阶函数:1)函数可以作为值进行传递
2)函数可以作为参数进行传递
3)函数可以作为函数返回值返回
package com.scala.Function
object test_bibao {
def main(args: Array[String]): Unit = {
//普通函数
def makeMultiplier(factor:Int):Int={
return factor+1
}
println(makeMultiplier(1))
//闭包函数:如果一个函数,访问到了它的外部(局部)变量的值,那么这个函数和他所处的环境,称为闭包
def makeMultiplier1(factor: Int): Int=>Int = {
// 定义一个闭包函数
//val multiplier = (x: Int) => x * factor //匿名函数
def multiplier(x:Int):