Java 将元素添加到Scala中的Seq[String]
我试图在Scala中创建一个单词列表。我不熟悉这门语言。我读过很多关于如何不能编辑不可变对象的文章,但没有一篇文章能够告诉我如何在Scala中创建所需的列表。我正在使用var初始化,但这没有帮助Java 将元素添加到Scala中的Seq[String],java,list,scala,seq,Java,List,Scala,Seq,我试图在Scala中创建一个单词列表。我不熟悉这门语言。我读过很多关于如何不能编辑不可变对象的文章,但没有一篇文章能够告诉我如何在Scala中创建所需的列表。我正在使用var初始化,但这没有帮助 var wordList = Seq.empty[String] for (x <- docSample.tokens) { wordList.++(x.word) } println(wordList.isEmpty) var wordList=Seq.empty[字符串] (x几小时
var wordList = Seq.empty[String]
for (x <- docSample.tokens) {
wordList.++(x.word)
}
println(wordList.isEmpty)
var wordList=Seq.empty[字符串]
(x几小时后,我发布了一个问题,一分钟后我就明白了
wordList=(x.word)::wordList
此代码为遇到相同问题的任何人解决此问题。您可以附加到不可变的Seq
并通过写入将var
重新分配给结果
wordList :+= x.word
表达式desugas到wordList=wordList:+word
的方式与x+=1
desugas到x=x+1
的方式相同。您可以使用val,但仍保持单词列表不变,如下所示:
val wordList: Seq[String] =
for {
x <- docSample.tokens
} yield x.word
println(wordList.isEmpty)
甚至:
val wordList: Seq[String] = docSample.tokens map (_.word)
println(wordList.isEmpty)
这将有助于:
wordList = wordList:+(x.word)
听起来你想要的东西像是val wordList=docSample.tokens.map(u.word)
不需要可变变量。或者flatMap
,如果word
恰好是另一个Seq
。你的帖子不清楚。这里不需要使用可变var
单词列表。
wordList = wordList:+(x.word)