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 )

相关推荐
m0_748254661 天前
Perl 变量类型
spark·scala·perl
是阿威啊11 天前
【用户行为归因分析项目】- 【企业级项目开发第五站】数据采集并加载到hive表
大数据·数据仓库·hive·hadoop·spark·scala
是阿威啊14 天前
【用户行为归因分析项目】- 【企业级项目开发第四站】模拟三类用户行为数据上传到Hadoop
大数据·hadoop·分布式·sql·scala
今天没有盐16 天前
Python字符串操作全解析:从基础定义到高级格式化
后端·scala·编程语言
是阿威啊17 天前
【用户行为归因分析项目】- 【企业级项目开发第一站】项目架构和需求设计
大数据·hive·hadoop·架构·spark·scala
代码于老总19 天前
【Scala 技巧】用隐式类给 String “开挂”:一行代码实现手机号 / 身份证号校验
scala
scala舔狗汪19 天前
scala的隐式对象和隐式类
scala
是阿威啊20 天前
【maap-analysis】spark离线数仓项目完整的开发流程
大数据·分布式·spark·scala
豚踢兔x25 天前
正则表达式应用-手机号打码
scala
代码于老总1 个月前
正则表达式在 Scala 中的应用
scala