use*_*367 3 java scala list seq
我正在尝试在Scala中创建一个单词列表.我是这门语言的新手.我已经阅读了很多关于你如何不能编辑不可变对象的帖子,但是没有人能够告诉我如何在Scala中创建我需要的列表.我使用var初始化,但这没有帮助.
var wordList = Seq.empty[String]
for (x <- docSample.tokens) {
wordList.++(x.word)
}
println(wordList.isEmpty)
Run Code Online (Sandbox Code Playgroud)
我非常感谢对此的一些帮助.我理解对象在Scala中是不可变的(尽管变量不是),但我需要的是一些简明的信息,为什么上面总是打印"true",以及如何使列表添加docSample.tokens.word中包含的单词.
您可以使用val并仍然保持wordlist不可变,如下所示:
val wordList: Seq[String] =
for {
x <- docSample.tokens
} yield x.word
println(wordList.isEmpty)
Run Code Online (Sandbox Code Playgroud)
或者:
val wordList: Seq[String] = docSample.tokens.map(x => x.word)
println(wordList.isEmpty)
Run Code Online (Sandbox Code Playgroud)
甚至:
val wordList: Seq[String] = docSample.tokens map (_.word)
println(wordList.isEmpty)
Run Code Online (Sandbox Code Playgroud)
您可以附加到不可变,Seq并var通过写入重新分配给结果
wordList :+= x.word
Run Code Online (Sandbox Code Playgroud)
这种表达wordList = wordList :+ word方式与x += 1去世的方式相同x = x + 1.
| 归档时间: |
|
| 查看次数: |
10465 次 |
| 最近记录: |