我有以下代码可以获取参数,如果参数有效,则将其转换为Option [ObjectId],否则返回None。
我当时在想如何简化它,但没有发现特别好的地方。
注意:params.get(“desiredImage”)是Option [String]
val imageId: Option[ObjectId] = params.get("imageId") match {
case None => None
case Some(x) => {
if (ObjectId.isValid(x)) {
Some(new ObjectId(x))
} else {
None
}
}
}
最佳答案
您可以使用filter
:
val imageId: Option[ObjectId] = params.get("imageId")
.filter (ObjectId.isValid)
.map(new ObjectId(_))
关于scala - 我如何简化这种Scala Option的用法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21973479/