我正在嘗試查找行集合中最長行的長度。reduceLeft爲什麼會抱怨類型不匹配?
val lines = Source.fromFile(args(0)).getLines() //a collection of strings
val longestLine = lines.reduceLeft((a,b) =>
if(a.length > b.length) a.length else b.length)
但是,這將導致以下錯誤:
/home/jesvin/dev/scala/readfile.scala:11: error: type mismatch;
found : Int
required: String
if(a.length > b.length) a.length else b.length)
^
/home/jesvin/dev/scala/readfile.scala:11: error: type mismatch;
found : Int
required: String
if(a.length > b.length) a.length else b.length)
^
two errors found
我試圖在某些地區仍有明確的返回語句和類型轉換,但沒有奏效。
我使用reduceLeft
錯誤嗎?
我在第三章的末尾寫了這個程序,卻沒有看原版,找到了我的學習空白。原來,在這種情況下,我對減少和摺疊操作不夠了解。 – aitchnyu 2012-03-31 18:15:16