我是Scala的新手.我刚刚听到"eta扩展"一词,并且大致知道它意味着将方法扩展为函数对象.但我发现很少有资源可以系统地介绍它.
我很好奇eta扩展在Scala中是如何工作的.需要进行eta扩展的场景是什么?以及如何在Scala中实现eta扩展?
我大致知道在这种情况下:
def someMethod(x: Int): Int = x * x
Run Code Online (Sandbox Code Playgroud)
someMethod _
将大致翻译成一个新的函数对象,如下所示:
new Function1[Int, Int] {
def apply(x: Int): Int = x * x
}
Run Code Online (Sandbox Code Playgroud)
是Scala的全部吗?