Как добавить элемент в список в Scala? - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь добавить элемент в диапазон в Scala. Почему следующий фрагмент кода не работает? Как правильно это сделать?

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

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Вы не сообщили компилятору, какие элементы типа buffer будут содержать.

val buffer = ListBuffer[Int]()

После этого appendAll() должно работать нормально. Но в вашем коде нет ничего, что «добавило бы элемент в диапазон» (или список, как неверно указывает заголовок вопроса). Это другая операция.

Вы можете предварительно отложить или добавить новый элемент, но вы получите IndexedSeq[Int] обратно.

0 +: range
range :+ 14

Если вам нужен настоящий Range, вы можете построить новый.

val biggerRange = Range(range.start - 1 , range.end + 2, range.step)
0 голосов
/ 30 августа 2018

ListBuffer appenВсе нужен перемещаемый объект. https://www.scala -lang.org / апи / ток / Скала / Коллекция / TraversableOnce.html

Обходной путь для использования -

val buffer = ListBuffer[Int]()
for (i <- range ) buffer.append(i)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...