2017-10-14 20 views
0

스칼라에서 객체 목록을 반복하고 요소 속성 중 하나의 유형에 따라 값의 배열을 만드는 이해력을 가질 수 있습니까? 그래서 ...이해를위한 스칼라 패턴 일치

for (element <- elementList) element.attribute match { 
case a: Type1 => "Type1" 
case a => "All Types" 
} 

그리고 그 결과 배열이

Array("Type1", "Type1", "All Types", "Type1", "All Types", "All Types", "All Types", "All Types") 
+0

무엇이 문제입니까? – pamu

+0

내가 쓴 것은 작동하지 않습니다. 문제는 배열을 만드는 방법입니다. –

답변

3

당신이해야 할 일은 yield 결과입니다 ... 그리고 아마도 Array로 변환하십시오.

(for (element <- elementList) yield element.attribute match { 
    case a: Type1 => "Type1" 
    case a => "All Types" 
}).toArray 
2
같은 값으로 배열 될 것을 나는 요소의 목록이 있다고 가정하고 각각의 요소는 속성을 가지고 있으며, 속성은 서로 다른 유형의 수

List(Element)에서 List(String)까지의지도 기능을 사용하지 않는 이유는 무엇입니까?

배열을 List(String)에서 가져 오려는 경우 toArray입니다.