首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >附加到Scala中的列表中

附加到Scala中的列表中
EN

Stack Overflow用户
提问于 2017-10-31 18:47:42
回答 2查看 49关注 0票数 0

我不知道Scala为什么决定这样做,但我只想把一个项目添加到列表中。

代码语言:javascript
复制
var previousIds: List[String] = List()

我尝试了以下几点:

代码语言:javascript
复制
previousIds ::: List(dataListItem.id)
previousIds :: List(dataListItem.id)
previousIds :+ List(dataListItem.id)
previousIds +: List(dataListItem.id)
previousIds :+ dataListItem.id
previousIds +: dataListItem.id

在这些实例中,行将运行,但列表仍将包含0项。

当我尝试添加一个新列表时:

代码语言:javascript
复制
val list = List[String](dataListItem.id)
previousIds += list

我得到一个错误,这个列表需要是一个字符串。当我添加一个字符串

代码语言:javascript
复制
previousIds += dataListItem.id

我得到一个错误,它需要一个列表

出于某种原因,唯一起作用的是以下几点:

代码语言:javascript
复制
previousIds :::= List[String](dataListItem.id)

这似乎太过了,因为添加到列表应该是一个微不足道的选择。我不知道为什么别的什么都不管用。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-31 18:57:53

接下来的代码应该可以帮助您开始。我假设你在处理可变的集合:

代码语言:javascript
复制
val buf = scala.collection.mutable.ListBuffer.empty[String]

buf += "test"

buf.toList

如果您正在处理不可变集合,下一种方法将有所帮助:

代码语言:javascript
复制
val previousIds = List[String]("A", "TestB")

val newList = previousIds :: List("TestB")

有关模式详细信息,请参阅文档:

http://www.scala-lang.org/api/current/scala/collection/immutable/List.html

票数 1
EN

Stack Overflow用户

发布于 2017-10-31 19:56:02

使用MutableList

代码语言:javascript
复制
scala> var a = scala.collection.mutable.MutableList[String]()
a: scala.collection.mutable.MutableList[String] = MutableList()

scala> a += "s"
res0: scala.collection.mutable.MutableList[String] = MutableList(s)

scala> a :+= "s"

scala> a
res1: scala.collection.mutable.MutableList[String] = MutableList(s, s)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47042587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档