У меня есть некоторый код, подобный приведенному ниже, где у меня есть список Eithers, и я хочу превратить его в Either of Lists ... в частности (в этом случае), если в списке есть какие-либо левые , то я возвращаю Left из их списка, иначе я возвращаю Right из списка прав.
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
всегда заставляет меня чувствовать, что я, должно быть, что-то упускаю.
Is есть ли более идиоматический способ сделать это?