Option[Iterable[_]]
の2つを新しいOption[Iterable[_]]
に結合しようとしています。私はいくつかの要素のいずれか(または両方)がSomeとNoneならばSomeを返したいと思います。これを行うための慣用的な方法があるはずですが、私はそれを見つけることができません。以下は私が欲しいものをするようですが、私が望んでいた非常に滑らかな解決策ではありません。スカラオプションを組み合わせる[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
}
いずれのヒントもありがとうございます。ありがとう!
種類のほぼ同様の質問: http://stackoverflow.com/questions/10617979/binary-operator-with-option-arguments/10618340#10618340、役に立つかもしれません –