有没有一种访问选项对象内选项值的好方法?嵌套的匹配案例会导致丑陋的树结构。
因此,如果我有例如:
case class MyObject(value: Option[Int])
val optionObject : Option[MyObject] = Some(MyObject(Some(2))
我知道访问该值的唯一方法是:
val defaultCase = 0 //represents the value when either of the two is None
optionObject match {
case Some(o) => o.value match {
case Some(number) => number
case None => defaultCase
}
case None => defaultCase
}
这很丑陋,因为这个结构只是为了访问一个小的 Option 值。
我想做的是:
optionObject.value.getOrElse(0)
或者像你可以用Swift做的那样:
if (val someVal = optionObject.value) {
//if the value is something you can access it via someVal here
}
Scala中有什么东西可以让我很好地处理这些事情吗?
谢谢!