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 )

相关推荐
李白的天不白11 天前
确认 Nginx 配置文件是否真的生效
scala
醉颜凉13 天前
Scala自定义Monad实战:从理论到应用的完整指南
大数据·算法·scala
那晚的她13 天前
Scala中Set集合
开发语言·后端·scala
IvanCodes13 天前
二、Scala流程控制:分支与循环
大数据·scala
Veggie2613 天前
【Scala PyTorch深度学习】PyTorch On Scala系列课程 第十四章 29 PyTorch模型扩展自定义Module【AI Infra3】[PyTorch Scala硕士研一课程】
人工智能·深度学习·scala
Clf丶忆笙13 天前
搭建支持多语言开发的Quarkus环境:Java、Kotlin与Scala全栈指南
java·开发语言·云原生·kotlin·scala·quarkus
IvanCodes13 天前
四、Scala深入面向对象:类、对象与伴生关系
开发语言·后端·scala
嗯.~13 天前
scala的泛型应用场景
开发语言·后端·scala
醉颜凉13 天前
Scala Cats Effect纯函数式并发编程:从Fiber模型到生产级应用
大数据·网络·scala
2601_9611940215 天前
考研学校专业课真题
spring boot·考研·eclipse·log4j·scala·symfony