Estoy tratando de combinar dos Option[Iterable[_]]
en un nuevo Option[Iterable[_]]
. Me gustaría devolver un Some si uno (o ambos) de los elementos es un Some y a None en caso contrario. Parece que debería haber una forma idiomática de hacer esto, pero parece que no puedo encontrar uno. Lo siguiente parece hacer lo que quiero, pero no es la solución perfecta que esperaba.Combinación de la opción Scala [Iterable [_]]
def merge(
i1: Option[Iterable[_]], i2: Option[Iterable[_]]
): Option[Iterable[_]] = (i1, i2) match {
case (Some(as), Some(bs)) => Some(as ++ bs)
case (a @ Some(as), None) => a
case (None, b @ Some(bs)) => b
case _ => None
}
Cualquier consejo es apreciado. ¡Gracias!
pregunta Tipo de casi similar: http://stackoverflow.com/questions/10617979/binary-operator-with-option-arguments/10618340#10618340, puede ser útil –