我正在尝试在 Scala 中创建一个单词列表。我是语言的新手。我已经阅读了很多关于如何不能编辑不可变对象(immutable对象)的帖子,但没有一篇文章能够向我展示如何在 Scala 中创建我需要的列表。我正在使用 var 进行初始化,但这无济于事。

var wordList = Seq.empty[String]

for (x <- docSample.tokens) {
  wordList.++(x.word)
}

println(wordList.isEmpty)

我将不胜感激。我知道对象在 Scala 中是不可变的(虽然 vars 不是),但我需要的是一些关于为什么上面总是打印“true”的简明信息,以及如何让列表添加包含在 docSample.tokens.word 中的单词.

最佳答案

您可以使用 val 并且仍然保持单词表不可变,如下所示:

val wordList: Seq[String] =
  for {
    x <- docSample.tokens
  } yield x.word

println(wordList.isEmpty)

或者:
val wordList: Seq[String] = docSample.tokens.map(x => x.word)

println(wordList.isEmpty)

甚至:
val wordList: Seq[String] = docSample.tokens map (_.word)

println(wordList.isEmpty)

关于java - 在 Scala 中将元素添加到 Seq[String],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26579853/

10-10 10:30