中科院云平台架构师,专注于数字化、智能化,技术方向:云、Linux内核、AI、MES/ERP/CRM/OA、物联网、传感器、大数据、ML、微服务。
分类: 大数据
2017-07-24 14:53:56
最近在学习,在使用可变长度List 时,得知可以使用 .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]使用上面这一行代码进行声明,就不会有错啦!