這裏是POC代碼:不能Scala的理解錯誤類型
object TypeTest extends Application {
val stuff = List(1,2,3,4,5)
def joined:String = stuff.reduceLeft(_ + ", " + _)
println(joined)
}
在編譯時,它提供了以下錯誤:
tt.scala:4: error: type mismatch;
found : java.lang.String
required: Int
def joined:String = stuff.reduceLeft(_ + ", " + _)
^
tt.scala:4: error: type mismatch;
found : Int
required: String
def joined:String = stuff.reduceLeft(_ + ", " + _)
^
寫像
reduceLeft(_.toString + ", " + _.toString)
的加入功能
沒有幫助,還給出了同樣的錯誤。但是,如果我把它寫像
def joined:String = stuff.map(_.toString).reduceLeft(_ + ", " + _)
一切都很好。
能有人請解釋類型的錯誤,這種怪異的組合?這裏究竟發生了什麼?第二個特別奇怪,因爲Int到String有一個隱式轉換。
啊,是的,你說得對。我以某種方式將它與摺疊混淆* – 2009-09-23 10:36:00