我正在运行 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)甜蜜!我什至检查了别人的代码以寻求帮助:在 Scala 中将元素附加到列表的末尾以使用新的构造:+
。所以在这个阶段我很高兴,但我打电话l
并得到了意想不到的结果:`res3: List[Double] = List(1.0, 5.5)'。
我添加的元素在哪里?以及如何正确添加这些元素,以便在调用时l
获得一个包含所有添加内容的新列表?