我是斯卡拉新手。我剛剛聽到「eta擴展」一詞,大致知道它意味着將方法擴展到函數對象。但是我在SO中找不到有系統地介紹它的資源。斯卡拉的eta擴展是什麼?
我很好奇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呢?
埃塔膨脹的一個非常不錯的(如果日)解釋斯卡拉 - https://gleichmann.wordpress.com/2011/01/09/functional-scala-turning-methods-into-functions/ – Nio