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
。