Scala 播放框架,该方法何时停止执行?
在上面的方法中,调用Scala 播放框架,该方法何时停止执行?,scala,playframework,Scala,Playframework,在上面的方法中,调用Ok()后方法是否停止执行?就像在普通Scala中一样,块末尾的语句是返回的语句,即在这种情况下返回BadRequest。除非由于某种原因Ok包含副作用(我怀疑它会有副作用),否则示例中的Ok()函数调用实际上不会起任何作用。它将执行,然后执行BadRequest,并返回该调用的结果。为了快速简便地处理错误,您可以用Try()包装Ok,然后用getOrElse()替换异常时的BadRequest,或者如果您需要更高级的错误处理:,就像在普通Scala中一样,块末尾的语句是返回
Ok()
后方法是否停止执行?就像在普通Scala中一样,块末尾的语句是返回的语句,即在这种情况下返回BadRequest
。除非由于某种原因Ok
包含副作用(我怀疑它会有副作用),否则示例中的Ok()
函数调用实际上不会起任何作用。它将执行,然后执行BadRequest
,并返回该调用的结果。为了快速简便地处理错误,您可以用Try()
包装Ok
,然后用getOrElse()
替换异常时的BadRequest
,或者如果您需要更高级的错误处理:,就像在普通Scala中一样,块末尾的语句是返回的语句,即在本例中,返回BadRequest
。除非由于某种原因Ok
包含副作用(我怀疑它会有副作用),否则示例中的Ok()
函数调用实际上不会起任何作用。它将执行,然后执行BadRequest
,并返回该调用的结果。为了快速简便地处理错误,您可以使用Try()
包装Ok
,然后用getOrElse()
替换异常时的BadRequest
,或者如果您需要更高级的错误处理,则使用recover()
:另请参见6.11:
块表达式{s1;…;sn;e}
由块语句序列s1,…,sn
和最终表达式e
构成
在您的例子中,最后一个表达式e
是BadRequest(“”
),另请参见6.11:
块表达式{s1;…;sn;e}
由块语句序列s1,…,sn
和最终表达式e
构成
在您的例子中,最后一个表达式
e
是BadRequest(“”
),编译器不在乎。它只需要您希望从方法返回的最后一个表达式的正确类型。我想你可以运行它并检查一下。您可能会得到一个警告,第一个表达式没有被使用……因此在Scala中,块的最后一个语句将是返回值。因此Ok只是一个将被跳过的值,BadRequest将是函数(Request)=>Result的返回值,编译器不在乎。它只需要您希望从方法返回的最后一个表达式的正确类型。我想你可以运行它并检查一下。您可能会得到一个警告,第一个表达式没有被使用……因此在Scala中,块的最后一个语句将是返回值。因此Ok只是一个将被跳过的值,BadRequest将是函数(Request)=>Result的返回值
@Singleton
class DeliveryPartnerController @Inject()(deliveryPartnerService: DeliveryPartnerService)
extends Controller {
def getDeliveryPartners() = Action { implicit request =>
Ok("")
BadRequest("") // Is this code reachable?
}
}