Я пытаюсь объединить два Option[Iterable[_]]
в новый Option[Iterable[_]]
. Я хотел бы вернуть Some, если один (или оба )элемента являются Some и None в противном случае. Кажется, должен быть идиоматический способ сделать это, но я не могу его найти. Следующее, похоже, делает то, что я хочу, но это не совсем то решение, на которое я надеялся.
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
}
Любые советы приветствуются. Спасибо!