有效的网站优化,互联网运营培训课程,做镜像网站利润,不要营业执照的做网站谈谈scala的闭包、柯里化、高阶函数 如果一个函数#xff0c;访问到了它的外部#xff08;局部#xff09;变量的值#xff0c;那么这个函数和他所处的环境#xff0c;称为闭包。 闭包在函数式编程中是一个重要的概念#xff0c;广泛用于高阶函数、柯里化等技术中。
函数…谈谈scala的闭包、柯里化、高阶函数 如果一个函数访问到了它的外部局部变量的值那么这个函数和他所处的环境称为闭包。 闭包在函数式编程中是一个重要的概念广泛用于高阶函数、柯里化等技术中。
函数柯里化把一个参数列表的多个参数变成多个参数列表 函数柯里化其实就是将复杂的参数逻辑变得简单化,函数柯里化一定存在闭包。
高阶函数1函数可以作为值进行传递 2函数可以作为参数进行传递 3函数可以作为函数返回值返回
package com.scala.Function
object test_bibao {def main(args: Array[String]): Unit {//普通函数def makeMultiplier(factor:Int):Int{return factor1}println(makeMultiplier(1))//闭包函数如果一个函数访问到了它的外部局部变量的值那么这个函数和他所处的环境称为闭包def makeMultiplier1(factor: Int): IntInt {// 定义一个闭包函数//val multiplier (x: Int) x * factor //匿名函数def multiplier(x:Int):Int{x * factor}// 返回闭包函数multiplier}println(makeMultiplier1(1)(1))//闭包函数 匿名函数def makeMultiplier2(factor: Int): Int Int {// 定义一个闭包匿名函数// val multiplier2(x:Int){x*factor}val multiplier2 (x:Int)x*factor// 返回闭包函数multiplier2}println(makeMultiplier2(1)(1))//函数柯里化柯里化一定会产生闭包def makeMultiplier3(factor: Int)(x: Int) {x * factor}println(makeMultiplier3(1)(2))}}