어떤 연산이 A의 인스턴스에 적용 가능한지 검사하고, 그렇다면 B 또는 None의 인스턴스를 반환하는 함수가 있다고 가정 해 보겠습니다.스칼라 : 옵션 모음 필터링
def checker[A,B](a: A) : Option[B] = ...
이제 모든 유효 값을 포함하는 새 컬렉션을 만들고 싶습니다. None 값을 삭제하여 B 인스턴스 다음 코드는 작업을 수행하는 것 같지만 확실한 방법이 있습니다.
val as = List[A](a1, a2, a3, ...)
val bs =
as
.map((a) => checker(a)) // List[A] => List[Option[B]]
.filter(_.isDefined) // List[Option[B]] => List[Option[B]]
.map(_.get) // List[Option[B]] => List[B]
고마워요!
flatMap 그 젠장 –
@oxbow_lakes 나는 정확한 견적을 믿는다 : _ "이게 뭐야? 아마추어의 시간? flatMap 그거야!"_ –
그 인용문이 트위터에서 나왔습니까? – huynhjl