为什么foldLeft无法推断出类型?

时间:2014-04-09 15:28:59

标签: scala

为什么会出现这样的错误?

scala> 'a' - 'b'
res0: Int = -1

scala> ('a' /: "abc") {_ - _ }
<console>:8: error: type mismatch;
 found   : Int
 required: Char
              ('a' /: "abc") {_ - _ }
                                ^

1 个答案:

答案 0 :(得分:2)

正如Lee在评论中所说,这些类型并不匹配 - 这里有一些解决方案。

我们可以使用Int开始折叠,也可以将折叠函数的输出转换为Char

scala> (0 /: "abc")(_ - _)
res1: Int = -294

scala> ('a'.toInt /: "abc")(_ - _)
res2: Int = -197

scala> ('a' /: "abc")((a,b)=> (a-b).toChar)
res3: Char = ?