我正在阅读这个页面,我在scala中遇到了这个函数定义:
def upper: String => String = _.toUpperCase
Run Code Online (Sandbox Code Playgroud)
尝试后,似乎它的工作方式与此相同:
def upper = (str: String) => str.toUpperCase()
Run Code Online (Sandbox Code Playgroud)
两个功能都一样吗?如果是这样,我如何阅读上述功能(第一个)?这种定义定义的方式有特定的名称吗?
这实际上不是一种功能,而是一种方法.你可以在这里 和这里了解这两者之间的区别
这两个都是相同的,它是一个名为upper的方法,没有参数从String返回一个函数.
def upper: String => String = _.toUpperCase
Run Code Online (Sandbox Code Playgroud)
String => String是鞋面的返回类型.等号后的是实施.下划线只是用于引用函数参数的语法糖.
| 归档时间: |
|
| 查看次数: |
2510 次 |
| 最近记录: |