这里是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