Scala ListBuffer使用需显式声明强类型

460阅读 0评论2017-07-24 hiyachen
分类:大数据

       最近在学习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]
使用上面这一行代码进行声明,就不会有错啦!
上一篇:大数据优化算法-LBFGS-spark
下一篇:机器学习:spark ALS预测电影-python