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 )

相关推荐
、BeYourself7 天前
Scala 数据类型
开发语言·后端·scala
howard20057 天前
1.2 Scala变量与数据类型
scala·变量·数据类型·常量
渣渣盟7 天前
Flink定时器实战:处理时间与事件时间
大数据·flink·scala
howard20057 天前
1.1.4 Scala的使用方式
scala·交互方式·文件方式
、BeYourself9 天前
Scala 基础语法
开发语言·scala
渣渣盟13 天前
Flink实现TopN URL访问量统计
大数据·flink·scala
普通网友13 天前
探索Perl在ASIC中的应用:深入标量、数组和哈希的应用
scala·哈希算法·perl
zxfBdd1 个月前
Error:scala: No ‘scala-library*.jar‘ in Scala compiler classpath in Scala SDK
大数据·scala·jar
SHeqSpMeS1 个月前
雷达信号处理:运动目标相参积累——Radon-Fourier算法,用于检测运动目标,实现距离和...
scala