2013-12-08 2 views
0

Как передать List[Any] из List[Any] с параметрами в List.concat? Мой код:Занесенный список в категории varargs Scala

List.concat((a filter (x => x.getClass == a.getClass)): _*) 

Где a является List[Any] и (a filter (x => x.getClass == a.getClass)) должен стать список списков. Ошибка, которую я получаю, - type mismatch; found List[Any] required: Seq[Traversable[Any]].

Можно ли передать элементы списка параметров или преобразовать список в последовательность? Спасибо.

+0

работает для меня: https://codebrew.io/ftamas/hEqIc1C_QxOcssz2364JsQ – user60561

+0

Если у меня есть список 'а = List (список (1, 2, 3), List (4, 5))', как бы я сделал этот «Список (1, 2, 3, 4, 5)»? – Impossibility

+0

'Список (список (1, 2, 3), список (4, 5)). Flatten' производит' List (1, 2, 3, 4, 5) '. –

ответ

0

Ваше намерение связано с: : _*? Удалите его, и ваш код должен работать.

Вы можете передать List [Any] в concat, как показано ниже.

val list1 = List("Abby", "Jim", "Tony") 
val list2 = List[Any](90,"Tom") 
val ret = List.concat(list1,list2) 

Проблема кода, я думаю, это с : _*. И еще одна проблема - a filter (x => x.getClass == a.getClass), существует небольшая вероятность того, что элемент имеет тот же тип, что и контейнер, List в вашем случае. Это ваше реальное намерение? Вы хотите, чтобы List [Any] содержал элементы с типом List [Any]?

Работает следующий код, и я проверил их в http://scalass.com/tryout.

val list = List[Any](90,"Tom") 
val r = List.concat((list filter (x => x.getClass == "".getClass))) 
Смежные вопросы