Sto provando a combinare due Option[Iterable[_]]
in un nuovo Option[Iterable[_]]
. Vorrei restituire un Qualcuno se uno (o entrambi) degli elementi è un Qualcuno e un Nessuno altrimenti. Sembra che ci dovrebbe essere un modo idiomatico di farlo, ma non riesco a trovarne uno. Quello che segue sembra fare quello che voglio, ma non è proprio la soluzione perfetta che speravo.Combinazione dell'opzione 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
}
Qualsiasi consiglio è apprezzato. Grazie!
domanda Tipo di quasi simile: http://stackoverflow.com/questions/10617979/binary-operator-with-option-arguments/10618340#10618340, potrebbe essere utile –