Scala中的高阶函数

1.在变量中存放函数

(1)定义函数fun1


(2)将函数赋给一个变量(注意函数名和下划线之间有空格)       

   

(3)调用这个函数    

  


2.匿名函数

匿名函数没有函数名,将函数赋给变量fun2。函数的参数是String类型,返回Unit类型

  


3.高阶函数

(1)函数的参数为函数的高阶函数 

a)函数的第一个参数是func函数,func函数的输入参数类型为String,返回类型为Unit。第二个参数为String类型


b)调用bigData函数

  

 (注)fun2函数(2.匿名函数中定义的函数)就是一个输入参数类型为String,返回类型为Unit的函数,符合(1)中的定义

(2)返回值为函数的高阶函数


定义一个输入参数content的类型为String类型的的函数func_Returned,func_Returned函数的返回值是输入参数message的类型为String类型的的函数。(message:String)=>println(content+" "+message)整体是一个匿名函数,所以func_Returned函数的返回值就是一个函数。


定义returned变量接收func_Returned函数的返回值函数。此时,func_Returned("Spark")的返回函数是(message:String)=>println(Spark+" "+message)



(3)高阶函数的类型推断

def spark(func:(content:String)=>Unit,name:String) {func(name)}


(注)因为func函数中只传入了一个参数,所以不需要再写content  

(注)可简写为def spark(func:(String)=>Unit,name:String) {func(name)}

调用spark函数:


a)可简写为:spark(name=>println(name),"Scala")   //高阶函数可进行类型推断,所以不需要再定义name为String类型。其次,对于只有一个参数的函数,可以略去参数外围的括号

b)可再简写为:spark(println_ ,"Scala")   //如果在函数的参数的作用体内,只使用一次这个参数的具体的值,可以将参数具体的名称省掉,用下划线代替











  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值