您的位置:首页 > 其它

scala学习(十八)——高阶函数

2016-12-28 16:14 337 查看

scala学习(十八)——高阶函数

下面是scala中高阶函数的例子,注释中说的很清楚:
import scala.math._
object main{
def main(args:Array[String]){
//apply和unapply
var x = Array("1","2","3")
var y = Array.unapplySeq(x)
//高阶函数
//将函数定义为变量
var a = 3.14
var f = ceil _
println(f(a))
println("==========")
var temparray = Array(1.1,2.2,3.3)
var tempmaparray = temparray.map(f)
for(i <- tempmaparray){
println(i)
}

println("==========")
//匿名函数
//这里的匿名函数 (x : Double) => {x + 1} 可以简化成 x=>x +1 ,因为参数只有一个,函数体中也只有一条数据
//如果只出现一次,也可这样 _+1
for(k <- Array(1.1,2.2,3.4).map((x:Double) => x +1)){
println(k)
}

println("==========")
var fun = (x : Int) => {println(x)}
var ccarray = Array(1,2,3,4,5)
ccarray.map(fun)
//map操作之后原来的数组不变
println("==========")
for(j <- ccarray){
println(j)
}

println("==========")
//函数当做函数的参数
//高阶函数 函数的参数也是函数的函数叫做高阶函数
//定义函数的方式var ff = (a:Int,b:Int) =>{a + b}
//func的第一个参数是函数,函数当做参数的时候不需要写参数的名称,就是不能这样写subfunc:(a:Int)=>{a *2},应该写一个函数的骨架
def func(subfunc:(Int)=>Int,a:Int):Int = {subfunc(a)}
//定义一个函数的具体实现
var impsubfunc = (x:Int) => { x * 3}
var re = func(impsubfunc,12)
println(re)

}
}


运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: