为 Scala 演奏:函数没有 return
Play for Scala: function doesn't return
这很可能是一个新手问题。请注意,当函数打印 "continues" 时,有一个 if 1!=2
不起作用。 return 有什么问题?
def doSomething () = {
val json: JsValue = JsObject(Seq(
"ret" -> JsString("1"),
"msg" -> JsString("Some Msg")
))
if (1 != 2)
Ok(json))
println("continues")
Ok(json)
}
在 Play 中,Ok
并没有真正完成函数,而 Scala 只是 returns 最后一个过程的结果,在你的例子中,它没有 return if
中的 Ok,因为它仍然有 运行 的代码,尝试在 else
中使用 print 和第二个 Ok
,这样方法就没有任何东西了else to 运行 如果进入 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)
}
}
这很可能是一个新手问题。请注意,当函数打印 "continues" 时,有一个 if 1!=2
不起作用。 return 有什么问题?
def doSomething () = {
val json: JsValue = JsObject(Seq(
"ret" -> JsString("1"),
"msg" -> JsString("Some Msg")
))
if (1 != 2)
Ok(json))
println("continues")
Ok(json)
}
在 Play 中,Ok
并没有真正完成函数,而 Scala 只是 returns 最后一个过程的结果,在你的例子中,它没有 return if
中的 Ok,因为它仍然有 运行 的代码,尝试在 else
中使用 print 和第二个 Ok
,这样方法就没有任何东西了else to 运行 如果进入 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)
}
}