scala闭包与柯里化
2017-02-11 19:04
148 查看
闭包
闭包是一个函数,它的返回值取决于此函数之外声明一个或多个变量的值var factor = 3 val multiplier = (i:Int) => i * factor //返回值依赖外部的变量factor //"="号右边是作为fun的函数体的函数,它的返回值取决于fun的局部变量 def fun(x: Int) = (y: Int) => x * y //fun: fun[](val x: Int) => Int => Int //上边可以写成柯里化形式 def fun(x: Int)(y: Int) = x * y //fun: fun[](val x: Int)(val y: Int) => Int fun(2)(3) //6
柯里化(curring)
柯里化是一种新技术,它把接受多个参数的方法变换成接受一个单一参数的函数,并且返回接受余下的参数的新函数//原始多参数 def sum(x:Int,y:Int) = x + y //变换成接收一个参数 def first(x:Int) = (y:Int) => x + y //first: first[](val x: Int) => Int => Int //调用方式1 val second=first(1) //second: Int => Int = <function1> second(2) //res0: Int = 3 //调用方式2 first(1)(2) //方式2的调用比较简洁,所以**方法**也可以定义成与此一致的方式 def sum(x:Int)(y:Int) = x + y //sum: sum[](val x: Int)(val y: Int) => Int sum(1)(2) //res0: Int = 3
相关文章推荐
- scala基本语法->高阶函数、闭包、柯里化
- Scala高阶函数、闭包、柯里化
- 每天学一点Scala之 闭包
- 【Scala】高阶函数和柯里化
- Scala闭包
- 几个概念:javascript闭包及柯里化
- scala闭包
- scala面向对象.高阶函数,柯里化,Actor编程简介
- Scala 中闭包的概念
- scala学习之偏函数与闭包
- Scala学习之函数和闭包
- Scala——闭包
- Scala 闭包
- 闭包和柯里化
- scala基础25-闭包
- Scala 浅谈scala闭包与java回调函数
- Scala高级特性 匿名函数 柯里化 隐式转换 隐式参数【Scala 3】
- Scala 函数柯里化
- scala的柯里化
- scala闭包