最近在學習Scala,在使用可變長度List 時,得知可以使用 scala.collection.mutable.ListBuffer ,在需要的時候可以使用append方法,但是由於剛接觸Scala,對其中的一些細節不再注意,導致在使用ListBuffer時被一個小錯誤搞得團團轉,下面對我的錯誤進行說明,在此備忘,也希望能幫到跟我一樣的新手。
我知道需要導入scala.collection.mutable.ListBuffer,故我在前面導入了:
import scala.collection.mutable.ListBuffer
在使用之前,先聲明一個ListBuffer變量,通過一下代碼:
val buf = new ListBuffer()接着在需要的時候,進行追加,fn爲字符串:
buf.append(fn)
不知此時,你是否已經發現了問題所在?嘿嘿,希望你不要像我一樣犯錯。其實,上面的這行代碼會在編譯的時候報錯的。我是使用Idea編輯器,在輸入完上面一行代碼後,就已經開始提示我有錯了,錯誤是:Type mismatch expected:Nothing actual:String
我當時看了兩天,也查了API 文檔,硬是沒發現其中的問題。後來查資料的時候,偶然發現,原來是ListBuffer 聲明的時候忘記指定ListBuffer的類型了。
val buf = new ListBuffer[String]使用上面這一行代碼進行聲明,就不會有錯啦!終於找到原因了,居然被這一個小小的錯誤折騰了兩天