2015-09-10 3 views

ответ

6

:: относится к List. Это является a List, по сути.

Существует нет концепции догадки к Iterable, поскольку не все Iterable с гарантируют заказ (Set, например, нет). Вместо этого вы можете использовать Seq, который будет использовать +: для добавления.

+0

Мне нравится этот ответ лучше, чем у меня. Вы хотите использовать 'Seq'. – wheaties

+0

Я посмотрел на Iterable, так как я вручную скачал функцию последовательности (от scalaz/haskell) с помощью Seq. Но тогда у меня был набор, поэтому я взял LUB из Set и Seq - который является Итерируемым. –

+0

Лучшее, что вы можете сделать с помощью 'Iterable', является конкатенацией с использованием' ++ ', что не обязательно будет содержать или сохранить порядок. –

3

Iterable не метод prepend, но вы можете использовать «++», чтобы присоединиться к двум итерируемых:

scala> val xs: Iterable[Int] = Seq(1) 
xs: Iterable[Int] = List(1) 

scala> List(5) ++ xs 
res0: List[Int] = List(5, 1) 

Seq имеет метод, добавьте перед +:, и вы могли бы преобразовать в SEQ:

scala> 5 +: xs.toSeq 
res1: Seq[Int] = List(5, 1) 
Смежные вопросы