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

scala – 带选项参数的二元运算符

发布时间:2020-12-16 08:53:18 所属栏目:安全 来源:网络整理
导读:在 scala中,如何在两个Option参数上定义添加?具体来说,让我们说它们是Int类型的包装器(我实际上使用的是双打映射,但这个例子更简单). 我尝试了以下但它只是给了我一个错误: def addOpt(a:Option[Int],b:Option[Int]) = { a match { case Some(x) = x.get c
在 scala中,如何在两个Option参数上定义添加?具体来说,让我们说它们是Int类型的包装器(我实际上使用的是双打映射,但这个例子更简单).

我尝试了以下但它只是给了我一个错误:

def addOpt(a:Option[Int],b:Option[Int]) = {
    a match {
      case Some(x) => x.get
      case None => 0
    } + b match {
      case Some(y) => y.get
      case None => 0
    }
  }

编辑添加:

在我的实际问题中,我正在添加两个映射,这些映射是稀疏向量的替换.因此,无案例返回Map [Int,Double],实际上是一个(在stackoverflow.com/a/7080321/614684处调整)

解决方法

(根据要求在答案中重复上述评论)

您没有以正确的方式提取选项的内容.当你与case Some(x)匹配时,x是选项内的值(类型为Int),你不会调用get on.做就是了

case Some(x) => x

无论如何,如果你想要内容或默认,a.getOrElse(0)更方便

(编辑:李大同)

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

    推荐文章
      热点阅读