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)更方便 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |