为什么会出现这样的错误?
scala> 'a' - 'b'
res0: Int = -1
scala> ('a' /: "abc") {_ - _ }
<console>:8: error: type mismatch;
found : Int
required: Char
('a' /: "abc") {_ - _ }
^
答案 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 = ?