2017-12-28 4 views
1

나열합니다. 즉 l1이 A이면 l2에서 해당 값을 반환합니다. 같은 시도 :매핑 값은 내가 하나가 두 개의 목록이

for { 
    elem1 <- l1 
    elem2 <- l2 
    result <- if(elem1.isLeft) url 
} yield result 

이것은 작동하지 않습니다. 왜냐하면, 난 else 사건을 처리하지 않을거야. if 대신 일치와 유사합니다. 어떻게 이것을 달성하려고합니까?

답변

1

당신이 뭔가를 (내가 l2l1에서 Left의 같은 종류 A 요소의 적어도 같은 번호가 있으리라 믿고있어) 할 수있는 : 당신이 for을 사용하여 선호하는 경우, 그렇지 않으면

val result: List[String] = l1.zip(l2).filter(_._1.isLeft).map(_._2) 

을,이 트릭을 수행합니다.

scala> for { 
| e1 <- l1.zip(l2) 
| if e1._1.isLeft 
| } yield e1._2 
+0

예. 이 zip 옵션에 대해 알지 못했습니다. 이상하게도 검색에서 나오지 않았습니다. 우아한. – Itachi

관련 문제