У меня есть код, как показано ниже, где у меня есть список Eithers, и я хочу превратить его в Либо из списков... в частности (в данном случае), если в списке есть левые, то я возвращаю Left из их списка, иначе я верну право права на список прав.
val maybe: List[Either[String, Int]] = getMaybe
val (strings, ints) = maybe.partition(_.isLeft)
strings.map(_.left.get) match {
case Nil => Right(ints.map(_.right.get))
case stringList => Left(stringList)
}
Вызов get
всегда заставляет меня чувствовать, что мне что-то не хватает.
Есть ли более идиоматический способ сделать это?