我想知道request.body.asFormUrlEncoded
包含deviceId
or not.
val formValues=request.body.asFormUrlEncoded
val number = formValues.get("mobile").head
var deviceId ="deviceIdNotFound"
if(condtion) //thats the problem
deviceId= formValues.get("deviceId").head
有没有任何包含或任何其他功能的方式Option[Map[String,Seq[String]]]
我强烈建议你不要使用formValues.get("whatever")
,部分原因是语法非常混乱——看起来你正在调用get
当你真正打电话时,带有一个关键参数(例如在地图上)get
on the Option
(这是一个不安全的操作——你应该远离get
on Option
基本上总是)然后apply
在生成的地图上(也不安全)。这种混乱是 Scala 的错,而不是你的错,但你仍然想避免陷入其中。
相反,你可以使用exists
on the Option
和...一起contains
在地图上。这是一个稍微简化的示例:
val containsKey = formValues.exists(_.contains(key))
这将返回true
仅当Option
是非空的and它包含的地图有钥匙。
更好的方法是避免if
-这样的声明:
val os: Option[Seq[String]] = for {
m <- formValues
v <- m.get(key)
} yield v
os.foreach { v => \\ do something with the value }
在这里我们最终得到一个Option
包含指向的值key
如果原来的Option
非空并且映射包含该键。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)