1

在scala中这是可以的

val v = Vector(1,2,3)

这不行

val v = new Vector(1,2,3); 

你得到:

java.lang.NullPointerException
                                                  //|   at scala.collection.immutable.VectorIterator.next(Vector.scala:660)
                                                  //|   at scala.collection.Iterator$$anon$10.next(Iterator.scala:312)
                                                  //|   at scala.collection.Iterator$$anon$11.next(Iterator.scala:328)
                                                  //|   at scala.collection.Iterator$class.foreach(Iterator.scala:727)
                                                  //|   at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
                                                  //|   at scala.

为什么?

4

1 回答 1

6

看看 api http://www.scala-lang.org/api/current/index.html#scala.collection.immutable.Vector

您正在尝试调用如下所示的构造函数:

新向量(startIndex:Int,endIndex:Int,焦点:Int)

有了这个:

val v = 新向量(1,2,3);

看起来它正试图达到 3 处的索引,但显然向量不够长

于 2013-05-12T10:47:19.747 回答