2014-04-09 84 views
0

它爲什麼會出現這樣的錯誤?foldLeft爲什麼無法推斷出類型?

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

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

的類型不匹配 - 你的蓄電池開始爲'Char'但你的累加器函數應該是一個'Char'時返回一個'Int'。 – Lee

回答

2

正如李在評論中所說,類型不匹配 - 這裏有一些解決方案。

我們可以先從一個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 = ? 
相關問題