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 )

相关推荐
开开心心就好5 天前
用户推荐的文件解锁与强制操作工具
安全·智能手机·pdf·scala·音视频·symfony·1024程序员节
WL_Aurora6 天前
Scala核心编程(二):变量与数据类型详解
开发语言·scala
WL_Aurora7 天前
Scala核心编程(一):Scala语言概述与快速入门
spark·scala
o丁二黄o8 天前
语义版本控制:用Gemini镜像站实现合同条款的深度差异分析与风险追踪
javascript·kotlin·scala
与仪共舞11 天前
罗德与施瓦茨 NRP18S|三路二极管射频功率传感器
scala·数据库架构
howard200515 天前
1.8.3 掌握Scala类与对象 - Scala基本骨架方法
scala·基本骨架方法
howard200515 天前
1.9 掌握Scala抽象类与特质
scala·抽象类·特质
howard200516 天前
1.8.2 掌握Scala类与对象 - 单例对象与伴生对象
scala·伴生对象·单例对象
howard200518 天前
1.7.1 掌握Scala函数 - 声明Scala函数
scala·声明scala函数·显式声明·隐式声明
howard200520 天前
1.6.4 掌握Scala数据结构 - 元组
scala·元组