post("/api/v1/multi_preview/create"){
val html = getParam("html").get
val subject = getParam("subject").get
}
Run Code Online (Sandbox Code Playgroud)
我想知道.get方法在scala中的确切含义.getParam()已经将参数返回到post hit.我知道.get会使它变得更容易,因为我们不必"匹配"来检查空值,因为它会在前一种情况下自动抛出异常.还有更多的东西比满足眼睛吗?
Fel*_*lix 11
它通常是选项上的一个函数(即Some或None).它会获取包含的元素(如果存在),否则会抛出NoSuchElementException.
http://www.scala-lang.org/api/current/index.html#scala.Option
scala> val x:Option[Int] = Some(42)
x: Option[Int] = Some(42)
scala> x.get
res2: Int = 42
scala> None.get
java.util.NoSuchElementException: None.get
at scala.None$.get(Option.scala:322)
... 32 elided
Run Code Online (Sandbox Code Playgroud)
作为旁注,你应该尽量避免使用,get因为它会让你回到空指针异常的土地上.相反,尝试使用getOrElse,或继续通过高阶功能,如用你的期权价值map,filter,fold,reduce等.
以下是您可以如何使用它的示例:
scala> def foo(opt:Option[Int]) = opt map (_+2) filter (_%2 == 0) map (_+1)
foo: (opt: Option[Int])Option[Int]
scala> foo(Some(40))
res4: Option[Int] = Some(43)
scala> foo(Some(41))
res5: Option[Int] = None
scala> foo(None)
res6: Option[Int] = None
Run Code Online (Sandbox Code Playgroud)
如果您不直接"触摸"它,您可以假装始终指定该值.
| 归档时间: |
|
| 查看次数: |
4727 次 |
| 最近记录: |