Scala Can';t从选项[Double]获取的元组中获取单个值

Scala Can';t从选项[Double]获取的元组中获取单个值,scala,functional-programming,Scala,Functional Programming,嘿,我很难从元组中获取值 我想对两个选项[Double]的值进行算术运算,如果它们不等于零。到目前为止,我掌握的代码是 def optionDoubleAddition(a: Option[Double], b: Option[Double]) : Option[Double] = { val tuple = if(a != None && b != None) (a.getOrElse(0: Double),b.getOrElse(0: Double)) printl

嘿,我很难从元组中获取值

我想对两个选项[Double]的值进行算术运算,如果它们不等于零。到目前为止,我掌握的代码是

def optionDoubleAddition(a: Option[Double], b: Option[Double]) : Option[Double] = {

  val tuple = if(a != None && b != None) (a.getOrElse(0: Double),b.getOrElse(0: Double))
  println(tuple) //prints the values correctly when passed two doubles
  None //something to make the function work
}
它也不允许我从元组中获取单个元素

println(t(0))
println(t._1)
另外,我有点担心getOrElse函数是否有其他替代方法,我尝试过用不同的方法解决上面的问题,例如,如果我想执行以下操作

val example: Option[Double] = Some(5.0)
我想得到示例的值,或者没有其他值

example.getOrElse(None)
它以Any的形式返回值,但是我需要它是一个double,如果我尝试下面的方法,如果它是None,我也会遇到错误

val doubleValue: Double = example.getOrElse(None)

谢谢

我认为这就是您要寻找的,至少它对于方法概要文件是正确的

def optionDoubleAddition(a: Option[Double], b: Option[Double]) : Option[Double] =
  for {x <- a; y <- b} yield x+y
def optiondoubleddition(a:选项[Double],b:选项[Double]):选项[Double]=

对于{x我认为这就是您要寻找的,至少它对于方法概要文件是正确的

def optionDoubleAddition(a: Option[Double], b: Option[Double]) : Option[Double] =
  for {x <- a; y <- b} yield x+y
def optionDoubleAddition(a:Option[Double],b:Option[Double]):Option[Double]=
对于{x