我正在阅读this page ,我在 scala 中遇到了这个函数定义:
def upper: String => String = _.toUpperCase
尝试了一下,效果好像是这样的:
def upper = (str: String) => str.toUpperCase()
两个功能一样吗?如果是这样,我如何阅读上面的函数(第一个)?这种定义定义的方式有具体的名字吗?
最佳答案
这实际上不是一个函数,而是一个方法。 您可以阅读有关两者之间的区别 here and here
这两者是相同的,它是一个名为 upper 的方法,没有参数,它返回一个从 String 到 String 的函数。
def upper: String => String = _.toUpperCase
String => String
是 upper 的返回类型。等号后面的是实现。下划线只是一个语法糖,用于引用函数参数。
关于scala - 读取 scala 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42234882/