Play for Scala:函数不返回

时间:2016-06-06 10:36:32

标签: scala playframework playframework-2.0

这很可能是一个新手问题。请注意,如果函数打印“继续”,则会出现if 1!=2不起作用。返回有什么问题?

def doSomething () = {  

      val json: JsValue = JsObject(Seq(
          "ret" -> JsString("1"),
          "msg" -> JsString("Some Msg")
      ))

      if (1 != 2)
         Ok(json))

      println("continues")

      Ok(json)
}

1 个答案:

答案 0 :(得分:3)

在Play中,Ok并没有真正完成该功能,而Scala只返回最后一个进程的结果,在您的示例中,它不会返回if内的Ok,因为它仍然有代码可以运行,在Ok内使用打印和第二个else进行尝试,这样,如果进入if

def doSomething () = {  

  val json: JsValue = JsObject(Seq(
      "ret" -> JsString("1"),
      "msg" -> JsString("Some Msg")
  ))

  if (1 != 2) {
     Ok(json))
  } else {
    println("continues")

    Ok(json)
  }
}