scala高阶函数

来源:互联网 发布:怎么进入服务器数据库 编辑:程序博客网 时间:2024/04/29 12:10

1.scala中,接受函数参数,或者是返回函数的函数,被称为高阶函数
1.1接受函数作为参数的示例:

object test{ def main(args: Array[String]){     def valueAtOneQuarter(f:(Double)=>Double)=f(0.25)     //该函数类型为:(Double=>Double)=>Dobule     def function1(x:Double):Double =3*x     println(valueAtOneQuarter(function1))  }}

输出结果为:0.75

1.2返回函数的函数示例:

object test{ def main(args: Array[String]){   def mulBy(factor:Double)=(x:Double)=>factor*x    val quintuple=mulBy(5)    println(quintuple(3))  }}

输出结果为:15.0

1.3函数类型推断
前面有定义高阶函数 def valueAtOneQuarter(f: (Double) => Double) = f(0.25),因为已知参数的类型,所以Scala会尽可能推断出类型,在传入参数时,可以省掉一些内容。

valueAtOneQuarter((x:Double)=>3*x)//完整写法valueAtOneQuarter((x)=>3*x)//已知参数类型,可以省略DoublevalueAtOneQuarter(x=>3*x)//只有一个参数时,可以省去()valueAtOneQuarter(3*_)//参数只在右侧出现一次,可以用_替换
0 0
原创粉丝点击