scala传递匿名函数简化的原则

以一下这个标准调用为例说明问题。

f((name: String) => {

println(name)

})

i、 参数的类型可以省略,会根据形参进行自动的推导

f((name) => {

println(name)

})

ii、 类型省略之后,如果只有一个参数,则圆括号可以省略;其他情况: 没有参数和参数超过 1 的永远不能省略圆括号

f( name => {

println(name)

})

iii、 匿名函数如果只有一行,则大括号也可以省略

f( name => println(name) )

iv、 如果 参数只出现一次 ,则参数可以省略且后面的参数可以用_代替

f( println(_) )

推导:对于多个参数,但是参数只出现一次 ,那么每个参数可以使用_代替,但是下划线的顺序和参数的顺序是一一对应的。

v、如果可以推断出当前传入的表达式是一个函数体,而不是调用语句,可以直接省略下划线

f( println )

相关推荐
哈哈很哈哈2 天前
Spark 核心 RDD详解
大数据·分布式·spark·scala
DTS小夏2 天前
Linux 系统 + IDEA+Scala 插件:新手进阶开发指南
linux·scala·intellij-idea
渣渣盟3 天前
Spark核心:单跳转换率计算全解析
大数据·spark·scala·apache
闯闯桑5 天前
Spark 中spark.implicits._ 中的 toDF和DataFrame 类本身的 toDF 方法
大数据·ajax·spark·scala
MOMO陌染7 天前
IDEA环境搭建与输出
scala
闯闯桑9 天前
toDF(columns: _*) 语法
开发语言·前端·spark·scala·apache
q5673152310 天前
无需Python:Shell脚本如何成为你的自动化爬虫引擎?
开发语言·爬虫·python·自动化·scala
渣渣盟12 天前
Spark自定义累加器实现高效WordCount
大数据·spark·scala
IvanCodes13 天前
一、Scala 基础语法、变量与数据类型
大数据·开发语言·scala
q5673152314 天前
Nim轻量级爬虫:异步高效+代理轮换防封
开发语言·后端·爬虫·typescript·scala