我正在使用play2框架,所以当我检索参数时,我总是得到Option
。但我只会在所有选项都匹配时才继续处理(非无)。
我不想编写嵌套的match
,因为它看起来很难看。
if( isDefined("a") && isDefined("b"){
//dosomething
}
答案 0 :(得分:6)
您可以将它们作为元组匹配
(aOpt, bOpt) match {
case (Some(aVal), Some(bVal)) => ...
case _ => ...
}
您可以使用for-comprehension syntax
for {
aVal <- aOpt
bVal <- bOpt
} ...
如果你想走那条路的话,Scalaz图书馆里也有一些monadic组合子((aOpt |@| bOpt) {aVal + bVal}
)。