如何在scala中添加元素到列表?

时间:2018-08-30 04:34:29

标签: scala list

我正在尝试向scala中的范围添加元素。为什么以下代码片段失败?正确的方法是什么?

import scala.collection.mutable.ListBuffer
val range = Range(1, 10)
val buffer = ListBuffer()
buffer.appendAll(range)

2 个答案:

答案 0 :(得分:1)

您尚未告知编译器buffer将保留哪些类型的元素。

val buffer = ListBuffer[Int]()

之后,appendAll()应该可以正常工作。但是您的代码中没有什么可以“将元素添加到范围”(或列表,如问题标题错误地指出的那样)。那是不同的操作。

您可以预先添加或添加一个新元素,但是会返回IndexedSeq[Int]

0 +: range
range :+ 14

如果您想要一个真实的Range,则可以构建一个新的。{p>

val biggerRange = Range(range.start - 1 , range.end + 2, range.step)

答案 1 :(得分:-1)

ListBuffer appenAll需要可遍历的对象。 https://www.scala-lang.org/api/current/scala/collection/TraversableOnce.html

解决方法是使用-

val buffer = ListBuffer[Int]()
for (i <- range ) buffer.append(i)