最近在学习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]使用上面这一行代码进行声明,就不会有错啦!终于找到原因了,居然被这一个小小的错误折腾了两天
原文:http://blog.csdn.net/dai451954706/article/details/43675485