【发布时间】:2017-01-19 13:53:20
【问题描述】:
我是 Scala 新手。刚刚听说过“eta扩展”这个词,大致知道就是将一个方法扩展为一个函数对象。但是我在 SO 中发现很少有系统地介绍它的资源。
我很好奇 Scala 中的 eta 扩展是如何工作的。需要eta扩容的场景有哪些?以及 eta 扩展 是如何在 Scala 中实现的?
我大致知道在这种情况下:
def someMethod(x: Int): Int = x * x
someMethod _ 大致会被翻译成这样的新函数对象:
new Function1[Int, Int] {
def apply(x: Int): Int = x * x
}
这就是 Scala 所做的一切吗?
【问题讨论】:
-
对 Scala 中 eta-expansion 的一个很好的(如果过时的话)解释 - gleichmann.wordpress.com/2011/01/09/…
标签: scala eta-expansion