学好Spark/Kafka必须要掌握的Scala技术点(三)高阶函数、方法、柯里化、隐式转换

5. 高阶函数

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

5.1 作为值的函数

定义函数时格式:

val 变量名 = (输入参数类型和个数) => 函数实现和返回值类型和个数。

=:表示将函数赋给一个变量

=>:左面表示输入参数名称、类型和个数,右边表示函数的实现和返回值类型和参数个数

学好Spark/Kafka必须要掌握的Scala技术点(三)高阶函数、方法、柯里化、隐式转换

 

5.2 匿名函数

在Scala中,你不需要给每一个函数命名,没有将函数赋给变量的函数叫做匿名函数

学好Spark/Kafka必须要掌握的Scala技术点(三)高阶函数、方法、柯里化、隐式转换

 

5.3 方法转换为函数

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

学好Spark/Kafka必须要掌握的Scala技术点(三)高阶函数、方法、柯里化、隐式转换

 

5.4 柯里化

柯里化指的是将原来接收多个参数的方法或函数变成新的接收一个一个的参数的方法的过程。

学好Spark/Kafka必须要掌握的Scala技术点(三)高阶函数、方法、柯里化、隐式转换

 

5.5 隐式转换

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

学好Spark/Kafka必须要掌握的Scala技术点(三)高阶函数、方法、柯里化、隐式转换
除了上述介绍的语法之外,像协变、逆变、actor也需要大家掌握。至于akka,如果大家使用的是老版本Spark,如Spark1.X,也建议结合actor好好学习,Spark老版本通信框架是用akka和netty结合的,当然后面完全是用netty了。

推荐文章:
大数据常用技术栈
Spark通识

关注微信公众号:大数据学习与分享,获取更对技术干货

发表评论

相关文章