附加到Scala中的列表

附加到Scala中的列表,scala,Scala,我不知道Scala为什么决定让这件事变得如此烦琐,但我只想在列表中添加一项 var previousIds: List[String] = List() 我尝试了以下方法: previousIds ::: List(dataListItem.id) previousIds :: List(dataListItem.id) previousIds :+ List(dataListItem.id) previousIds +: List(dataListItem.id) previousIds :

我不知道Scala为什么决定让这件事变得如此烦琐,但我只想在列表中添加一项

var previousIds: List[String] = List()
我尝试了以下方法:

previousIds ::: List(dataListItem.id)
previousIds :: List(dataListItem.id)
previousIds :+ List(dataListItem.id)
previousIds +: List(dataListItem.id)
previousIds :+ dataListItem.id
previousIds +: dataListItem.id
previousIds :::= List[String](dataListItem.id)
在所有这些实例中,该行都将运行,但列表仍将包含0项

当我尝试添加新列表时:

val list = List[String](dataListItem.id)
previousIds += list
我得到一个错误,列表必须是字符串。当我添加字符串时

previousIds += dataListItem.id
我得到一个错误,它需要一个列表

出于某种原因,唯一可行的方法是:

previousIds ::: List(dataListItem.id)
previousIds :: List(dataListItem.id)
previousIds :+ List(dataListItem.id)
previousIds +: List(dataListItem.id)
previousIds :+ dataListItem.id
previousIds +: dataListItem.id
previousIds :::= List[String](dataListItem.id)
这似乎太过分了,因为,添加到列表中应该是一个微不足道的选择。我不知道为什么没有其他的办法


如何将项目添加到scala中的列表(已经存在)中,而不必像我现在这样创建一个新列表?

下一段代码应该可以帮助您开始。 我假设您正在处理可变集合:

val buf = scala.collection.mutable.ListBuffer.empty[String]

buf += "test"

buf.toList
在处理不可变集合的情况下,下一种方法将有助于:

val previousIds = List[String]("A", "TestB")

val newList = previousIds :: List("TestB")
有关模式详细信息,请参阅文档:


下一个代码应该可以帮助您开始。 我假设您正在处理可变集合:

val buf = scala.collection.mutable.ListBuffer.empty[String]

buf += "test"

buf.toList
在处理不可变集合的情况下,下一种方法将有助于:

val previousIds = List[String]("A", "TestB")

val newList = previousIds :: List("TestB")
有关模式详细信息,请参阅文档:

使用

使用


我假设您需要可变列表请先深入了解文档:这是“一件很麻烦的事”,因为Scala对可变(不鼓励)和不可变(首选)有明显的区别。我假设您需要可变列表请先深入了解文档:这是“一件很麻烦的事”因为Scala在可变(不鼓励)和不可变(首选)之间做出了显著的区别。