加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

减少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的隐式转换,它碰巧有一个方法可以完全满足你的需要.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读