list - 在Scala中将元素添加到列表中

标签 list scala

我正在运行 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/

相关文章:

c# - 删除列表中项目的最快方法

scala - 将元素从外部推送到 fs2 中的 react 流

scala - 从 Scala 源访问 SBT 设置

ScalaTest - 检查 "almost equal"是否有 float 和包含 float 的对象

python - 从 Python 列表列表到整数索引的逆映射

python - 切割/切片排序列表的优化方法

java - 如何使用 Java Streams API 在两个相同维度的列表之间进行元素明智的乘法

python - 返回文件中两个字符串之间的任何内容的每个实例 [Python 3]

scala - OpenPDF/iText 损坏的文件

scala - 如何在scala/play中将casbah mongodb列表转换为json