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 )

相关推荐
MZWeiei6 小时前
Spark任务调度流程详解
大数据·分布式·spark·scala
бесплатно15 小时前
Scala流程控制
开发语言·后端·scala
Bin Watson8 天前
解决 Builroot 系统编译 perl 编译报错问题
开发语言·scala·perl
什么芮.11 天前
大数据应用开发和项目实战(2)
大数据·pytorch·sql·spark·scala
不要天天开心12 天前
Spark-Streaming核心编程:有状态转化操作与DStream输出
scala
欧先生^_^13 天前
Scala语法基础
开发语言·后端·scala
不要天天开心15 天前
大数据利器:Kafka与Spark的深度探索
spark·scala
不要天天开心16 天前
Kafka与Spark-Streaming:大数据处理的黄金搭档
kafka·scala
什么芮.17 天前
spark-streaming
pytorch·sql·spark·kafka·scala
爱编程的王小美21 天前
Scala 入门指南
开发语言·后端·scala