0
在Scala中,我可以生成一個令行禁止功能,像這樣:秩序咖喱斯卡拉參數的功能
def multiply(m: Int)(n: Int): Int = (m + 1) * (n + 2)
如果我想,我可以生成一個新的功能,通過填充的是第一個參數,像這樣:
val timesTwo = multiply(1) _
但是替換第二個參數而不是第一個參數的語法是什麼?
val timesThree = multiply _ (1) // Incorrect Syntax
更重要的是,爲什麼沒有直接平行於multiply(1) _
?
我喜歡'乘法(_的:int)(1)'。謝謝!但爲什麼語法不會與'multiply(1)_'並行? – theJollySin
請參閱Scala參考的6.7節(http://www.scala-lang.org/files/archive/nightly/pdfs/ScalaReference.pdf)。 multiply(1)_中的_不是像multiply(_:Int)那樣的匿名函數參數的佔位符,而是強制方法轉換爲函數的特殊語法(「eta-expansion」) 。至於爲什麼需要顯式類型,我不知道。 – wingedsubmariner