2013-12-08 2 views
0

List[Any]List[Any]을 매개 변수로 List.concat에 전달할 수 있습니까? 내 코드는 다음과 같습니다목록을 varargs로 전달 스칼라

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

을 내가리스트'A = 목록이있는 경우 (목록 (1, 2, 3), 목록 (4, 5))', 내가 어떻게'List (1, 2, 3, 4, 5) '을 만들 수 있을까? – Impossibility

+0

'List (1, 2, 3), List (4, 5)). flatten'은'List (1, 2, 3, 4, 5)'를 생성합니다. –

답변

0

당신의 의도는 : _*입니까? 그것을 제거하면 코드가 작동합니다.

다음과 같이 List [Any]를 실제로 연결할 수 있습니다.

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와 동일한 유형 일 가능성이 있습니다. 이게 당신의 진정한 의도입니까? 목록을 원한다 [Any]는 List [Any] 유형의 요소를 포함하고 있는가?

다음 코드가 작동하며이를 http://scalass.com/tryout에서 확인했습니다. 나를 위해

val list = List[Any](90,"Tom") 
val r = List.concat((list filter (x => x.getClass == "".getClass))) 
관련 문제