2017-12-29 23 views
-3

Seqに文字列を追加する必要があります。私はvalでSeqを以下のように宣言しました。構造体自体が不変なので、2つの要素を追加して変更します。私はSeqに要素を追加する方法が:+であり、コードはうまくコンパイルされますが、空のリストList()を出力することを(see here)は読んでいます。 Seqに要素を追加する方法Seqのデフォルトの実装は不変Listあるので、要素をSeqに追加する

val bands = Seq[String]() 
bands :+ "aaa" 
bands :+ "bbb" 
println(bands) 
+2

まず、不変性の意味とプログラミングでの扱い方をお読みください – cchantep

+4

[Scalaのリストに要素を追加]の複製(https://stackoverflow.com/questions/19610320/add-element-to-a-list) -in-scala)と[Scalaのリストの最後に要素を追加する](https://stackoverflow.com/questions/7794063/appending-an-element-to-the-end-of-a-list- in-scala) – prayagupd

+0

私が言及したSOの質問のタイトルは誤解を招く[不変のSeqへのアイテムの追加](https://stackoverflow.com/questions/8295597/adding-an-item-to-an-immutable- seq) – ps0604

答えて

1

:+機能は、新しいシーケンスを返します。

代わりにprintln((bands :+ "aaa") :+ "bbb")またはprintln(bands ++ List("aaa", "bbb"))を試してください。

+0

[this](https://alvinalexander.com/scala/scala-idiom-immutable-code-functional-programming-immutability)を読んで、このコンセプトをよりよく理解し、それを適用する方法を理解するのに役立ちます。 – Kraylog

関連する問題