4
在Twitter's Scala schoolcollections section,他們表現出了部分功能的值地圖:斯卡拉地圖的部分功能價值
// timesTwo() was defined earlier.
def timesTwo(i: Int): Int = i * 2
Map("timesTwo" -> timesTwo(_))
如果我嘗試使用Scala 2.9.1和sbt我得到這個編譯如下:
[error] ... missing parameter type for expanded function ((x$1) => "timesTwo".$minus$greater(timesTwo(x$1)))
[error] Map("timesTwo" -> timesTwo(_))
[error] ^
[error] one error found
如果我添加的參數類型:
Map("timesTwo" -> timesTwo(_: Int))
然後我得到以下編譯器錯誤:
[error] ... type mismatch;
[error] found : Int => (java.lang.String, Int)
[error] required: (?, ?)
[error] Map("timesTwo" -> timesTwo(_: Int))
[error] ^
[error] one error found
我很難過。我錯過了什麼?
或'地圖( 「timesTwo」 - >(timesTwo _))' – 2012-03-23 05:41:23
或'地圖[字符串,INT => INT]( 「timesTwo」 - > timesTwo) ' – sschaef 2012-03-23 13:33:19