当前位置: 首页 > article >正文

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 )


http://www.kler.cn/a/580826.html

相关文章:

  • Android 低功率蓝牙之BluetoothGattCharacteristic详解
  • linux下文件读写操作
  • 探索CAMEL:揭开多智能体系统的神秘面纱
  • upload-labs(1-20)详解(专业版)
  • JVM参数调整
  • Linux——基础IO【3万字大章】
  • 第四次CCF-CSP认证(含C++源码)
  • 构建服务器--在线单词查询
  • Ubuntu 22.04 升级到 Ubuntu 24.04 全流程指南
  • tcc编译器教程6 进一步学习编译gmake源代码
  • Unity2017打包出来后的场景一片红
  • P8630 [蓝桥杯 2015 国 B] 密文搜索--map、substr
  • 大型语言模型为何看不懂电路图:局限性分析
  • OpenHarmony 5.0.0 Release
  • 【算法 C/C++】二维前缀和
  • 蓝桥杯备赛-差分-重新排序
  • 逻辑回归实战——银行贷款案例初步实现
  • MoonSharp 文档四
  • ESP32S3N16R8驱动ST7701S屏幕(vscode+PlatfoemIO)
  • C#程序结构及基本组成说明