我已经阅读了here关于scala中函数和方法之间的区别。它说方法可以比函数稍快。但是当使用m
将方法m _
作为参数传递时,m会隐式转换为函数。
答案 0 :(得分:3)
与 2 无关。但总的来说,忘记性能,方法比函数声明更具可读性。在某些情况下,它们在编译器优化方面可能会快一些,但是:
如果不将方法转换为函数,则无法将方法作为参数传递。方法是一种特殊的语言结构,而不是一个对象本身。如果要将其用作对象,则必须使用eta-expansion将其转换为1.
答案 1 :(得分:1)
FunctionN
之一接口,以便它可以用作函数。答案 2 :(得分:0)
它避免使用函数和避免其他对象分配同样有意义。他们没什么特别的。
可以使用反射直接传递和调用方法,但性能会比在类似情况下传递函数更糟糕。