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

Scala 为什么foldLeft无法推断出类型?,scala,Scala,为什么会出现这样的错误 scala> 'a' - 'b' res0: Int = -1 scala> ('a' /: "abc") {_ - _ } <console>:8: error: type mismatch; found : Int required: Char ('a' /: "abc") {_ - _ } ^ scala>“a”-“b” res0:Int=

为什么会出现这样的错误

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

scala> ('a' /: "abc") {_ - _ }
<console>:8: error: type mismatch;
 found   : Int
 required: Char
              ('a' /: "abc") {_ - _ }
                                ^
scala>“a”-“b”
res0:Int=-1
scala>('a'/:“abc”){{uu-}
:8:错误:类型不匹配;
找到:Int
必需:字符
('a'/:“abc”){{uu-}
^

正如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 = ?

类型不匹配-累加器以
Char
开始,但累加器函数在应为
Char
时返回
Int