减少scala中的选项?
发布时间:2020-12-16 19:07:58 所属栏目:安全 来源:网络整理
导读:做这个的最好方式是什么: def reduce[A](x: Option[A],y: Option[A])(f: (A,A) = A): Option[A] = (x,y) match { case (Some(a),Some(b)) = Some(f(a,b)) case (None,None) = None case (_,None) = x case (None,_) = y } 我看了this问题,但他的情况与我的
做这个的最好方式是什么:
def reduce[A](x: Option[A],y: Option[A])(f: (A,A) => A): Option[A] = (x,y) match { case (Some(a),Some(b)) => Some(f(a,b)) case (None,None) => None case (_,None) => x case (None,_) => y } 我看了this问题,但他的情况与我的情况略有不同…… 解决方法
最短的可能是
(x ++ y).reduceLeftOption(f) 这是因为从Option到Iterable的隐式转换,它碰巧有一个方法可以完全满足你的需要. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |