必须要掌握的Scala技术点(五)Scala高阶函数、方法、柯里化、隐式转换

本文深入探讨Scala中的高阶函数,包括作为值的函数、匿名函数、方法转换为函数以及柯里化。了解如何将函数作为参数传递,以及如何通过柯里化将多参数函数转化为接受单一参数的函数。同时,文中提到了Scala中的隐式转换,增强了类的功能。此外,还提及了Scala与Akka在旧版Spark中的应用。
摘要由CSDN通过智能技术生成

5. 高阶函数

Scala中的高阶函数包含:作为值的函数、匿名函数、闭包、柯里化等,可以把函数作为参数传递给方法或函数。

5.1 作为值的函数

定义函数时格式:val 变量名 = (输入参数类型和个数) => 函数实现和返回值类型和个数。
=:表示将函数赋给一个变量
=>:左面表示输入参数名称、类型和个数,右边表示函数的实现和返回值类型和参数个数
在这里插入图片描述

5.2 匿名函数

在Scala中,你不需要给每一个函数命名,没有将函数赋给变量的函数叫做匿名函数
在这里插入图片描述

5.3 方法转换为函数

在Scala中,方法和函数是不一样的,最本质的区别是函数可以做为参数传递到方法中,方法可以被转换成函数。
在这里插入图片描述

5.4 柯里化

柯里化指的是将原来接收多个参数的方法或函数变成新的接收一个一个的参数的方法的过程。
在这里插入图片描述

5.5 隐式转换

对类进行增强,关键字implicit。如Int没有to(),而RichInt有to(),我们只需要在某个地方将Int转为RichInt,然后在用的地方import隐式转换就可以直接使用to(),示例:
在这里插入图片描述

除了上述介绍的语法之外,像协变、逆变、actor也需要大家掌握。

至于akka,如果大家使用的是老版本Spark,如Spark1.X,也建议结合actor好好学习,Spark老版本通信框架是用akka和netty结合的,当然后面完全是用netty了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值