小编rob*_*obo的帖子

结合Scala选项[Iterable [_]]

我正在尝试将两个组合Option[Iterable[_]]成一个新的Option[Iterable[_]].如果其中一个(或两个)元素是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
}
Run Code Online (Sandbox Code Playgroud)

任何提示都表示赞赏.谢谢!

collections monads scala

5
推荐指数
1
解决办法
383
查看次数

标签 统计

collections ×1

monads ×1

scala ×1