我正在解析三个请求参数,所有这些参数都封装在Option类型中。如果这些选项中的任何一个是None,那么我想返回一个400错误。如何检查这些返回值中是否有None类型
发布于 2014-10-06 11:42:39
为什么不就这样?
if (o1.isEmpty || o2.isEmpty || o3.isEmpty) BadRequest("Foo")另外,取决于您的实现,您可能在某种集合中有您的选项。然后你可以使用exists
if (parsedRequestParameters.exists(_.isEmpty)) BadRequest("Foo")你可能喜欢的第三种选择是,如果你想用你的选项的内容做些什么:
val response = for {
v1 <- o1
v2 <- o2
v3 <- o3
} yield <some response depending on the values of o1..o3>
response getOrElse BadRequest("something wasn't specified")发布于 2015-10-13 12:14:33
另一种可能性是为完整性而增加的:
(o1, o2, o3) match {
case(Some(p1), Some(p2), Some(p3)) => Ok // Do stuff with p1, p2, p3
case _ => BadRequest
}发布于 2014-10-06 12:04:19
我更喜欢使用它们,就像使用OptionT集合一样。
scala> Seq(Option(1), Option(5), None)
res0: Seq[Option[Int]] = List(Some(1), Some(5), None)
scala> val result = res0.exists(_.isEmpty)
result: Boolean = truehttps://stackoverflow.com/questions/26215349
复制相似问题