每天学一点Scala之 匿名函数

简介:

1、  定义

    如果一个函数没有名字的话,就是匿名函数了。只使用一次,并没有多次调用

2、  匿名函数的使用场景


    1. 将匿名函数,直接赋值给变量

    2. 将匿名函数,作为函数的参数进行使用

3、  匿名函数的几种表现形式?或者呈现形式


    1. 没有参数输入,没有返回值的匿名函数

    2. 有参数输入,没有返回值的匿名函数

    3. 有参数输入,有返回值的匿名函数

4、  匿名函数的语法规则,有两种形式吧:[一种有输入参数,一种没有输入参数]


    1. (参数名:参数类型) => 函数体

    2. 函数体

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package  com.xej.learning.nimingFunction
 
object  AnonymousFunction {
    def  main(args :  Array[String]) :  Unit  =  {
       //对于有参数输入的匿名函数,调用时,同样要用参数输入哦
       kafkaName( "apache kafka" )
       println( "--->:\t"  + flumeName( "apache flume" ))
       sparkName
 
       //匿名函数的使用场景--1,作为参数,传入给高阶函数
       //下面,map,foreach里,就是匿名函数
       Array( 3 , 2 , 1 , 5 ).map{(x :  Int)  = > x +  2 }.foreach(x  = > print(x +  " " ))
 
       println( "\n----------------------------------------------------" )
 
       Array( 3 , 2 , 1 , 5 ).map{ _  1 }.foreach(x  = > print(x +  " " ))
    }
 
    //匿名函数的使用场景--2,直接赋值给变量
    //参数:有参数输入,函数体:无返回值,形式的匿名函数//函数体里,可能有很多条语句哦,
    //只是最终结果,是有返回值的
    val  kafkaName  =  (name :  String)  = > println( "--kafka-->"  + name)
 
    //参数:有参数输入,函数体:有返回值,形式的匿名函数
    val  flumeName  =  (name :  String)  = "--flume-->"  + name
 
    //参数:无参数输入,函数体:无返回值,形式的匿名函数
    val  sparkName  =  println( "----this is spark------" )
}


spark源码,marathon源码中,都大量使用了匿名函数

下面是marathon源码中的样例

wKiom1msrTSxtc0qAADX78VCV4g992.png




















本文转自故新51CTO博客,原文链接:http://blog.51cto.com/xingej/1962419 ,如需转载请自行联系原作者











相关文章
|
Java Scala
scala 匿名函数的用法实操
1. => 什么意思 => 匿名函数(Anonymous Functions),表示创建一个函数实例。 比如:(x: Int) => x + 1 和如下JAVA方法表示的含义一样:
107 0
|
SQL 消息中间件 分布式计算
如何查看spark与hadoop、kafka、Scala、flume、hive等兼容版本【适用于任何版本】
如何查看spark与hadoop、kafka、Scala、flume、hive等兼容版本【适用于任何版本】
869 0
如何查看spark与hadoop、kafka、Scala、flume、hive等兼容版本【适用于任何版本】
|
2月前
|
分布式计算 资源调度 Java
Scala+Spark+Hadoop+IDEA实现WordCount单词计数,上传并执行任务(简单实例-下)
Scala+Spark+Hadoop+IDEA实现WordCount单词计数,上传并执行任务(简单实例-下)
34 0
|
2月前
|
分布式计算 Hadoop Scala
Scala +Spark+Hadoop+Zookeeper+IDEA实现WordCount单词计数(简单实例-上)
Scala +Spark+Hadoop+Zookeeper+IDEA实现WordCount单词计数(简单实例-上)
27 0
|
3月前
|
SQL 存储 分布式计算
在scala中使用spark
在scala中使用spark
136 0
|
3月前
|
分布式计算 Java Scala
spark 与 scala 的对应版本查看、在idea中maven版本不要选择17,弄了好久,换成11就可以啦
spark 与 scala 的对应版本查看、.在idea中maven版本不要选择17,弄了好久,换成11就可以啦
254 2
|
3月前
|
分布式计算 Java Scala
Spark编程语言选择:Scala、Java和Python
Spark编程语言选择:Scala、Java和Python
Spark编程语言选择:Scala、Java和Python
|
3月前
|
分布式计算 数据处理 Scala
Spark 集群和 Scala 编程语言的关系
Spark 集群和 Scala 编程语言的关系
|
存储 分布式计算 Scala
Spark-RDD 键值对的操作(Scala版)
Spark-RDD 键值对的操作(Scala版)