我是Scala的新手。我刚刚听到了“ eta扩展”一词,并且大致知道这意味着将方法扩展为功能对象。但是我发现SO中几乎没有资源可以系统地介绍它。
我对eta扩展在Scala中的工作方式感到好奇。eta扩展需要哪些方案?以及如何在Scala中实现eta扩展?
我大致知道在这种情况下:
def someMethod(x: Int): Int = x * x
someMethod _ 大致会转换为新的函数对象,如下所示:
new Function1[Int, Int] {
def apply(x: Int): Int = x * x
}
这是Scala的全部功能吗?