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 )

相关推荐
顧棟3 天前
JAVA、SCALA 与尾递归
java·开发语言·scala
深兰科技3 天前
坦桑尼亚与新加坡代表团到访深兰科技,促进AI在多领域的应用落地
java·人工智能·typescript·scala·perl·ai大模型·深兰科技
a程序小傲4 天前
scala中的Array
开发语言·后端·scala
kk哥88994 天前
scala 介绍
开发语言·后端·scala
17315 天前
scala中的Array
scala
满山狗尾草5 天前
map的常规操作
scala
渣渣盟7 天前
Flink实时数据写入Redis实战
大数据·scala·apache
pale_moonlight7 天前
十、Scala应用实践(下)
linux·开发语言·scala
云岫1157 天前
高贵的hasNext带着“迭代器”袭击你的大脑
scala
卓码软件测评9 天前
第三方软件测试评测机构:【基于Scala DSL的Gatling脚本开发:从零开始构建首个负载测试模型】
后端·测试工具·测试用例·scala·负载均衡·压力测试