我正在运行 Scala 2.10.2。我想创建一个列表,然后将一些元素添加到列表中,并希望在调用列表名称时看到列表中的所有元素。但我观察到一些很奇怪的事情(至少对我来说很奇怪,因为我是新手)。以下是我在 sbt console
中尝试做的事情
scala> val l = 1.0 :: 5.5 :: Nil
l: List[Double] = List(1.0, 5.5)
scala> l
res0: List[Double] = List(1.0, 5.5)
scala> l ::: List(2.2, 3.7)
res1: List[Double] = List(1.0, 5.5, 2.2, 3.7)
scala> List(l) :+ 2.2
res2: List[Any] = List(List(1.0, 5.5), 2.2)
scala> l
res3: List[Double] = List(1.0, 5.5)
scala>
首先,我创建了列表
l
有 2 个元素(1.0 和 5.5)。我调用 l
得到我所期望的;这两个元素。现在我尝试使用 :::
将另一个元素添加到列表中。它返回了一个新列表,其中包含我添加的新元素列表(2.2 和 3.7)甜蜜!我什至检查了别人的代码以寻求帮助:Appending an element to the end of a list in Scala使用新构造:+
.所以在这个阶段我很高兴,但我调用l
我得到了意想不到的结果:`res3: List[Double] = List(1.0, 5.5)'。我添加的元素在哪里?以及如何正确添加这些元素,以便在调用
l
时我得到一个包含我添加的所有内容的新列表?
最佳答案
由于您想将元素附加到现有列表中,您可以使用 var List[Int] 然后继续将元素添加到同一个列表中。
注意->您必须确保将元素插入到现有列表中,如下所示:-
var l: List[int] = List()//创建一个空列表
l = 3::l//将 3 添加到列表的头部
l = 4::l//使 int 4 作为列表的头部
//现在当你打印 l 时,你会在列表中看到两个元素 (4, 3)
关于list - 在Scala中将元素添加到列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19610320/