相关疑难解决方法(0)

理解Scala中的隐式

我正在通过Scala playframework教程,我遇到了这段令我困惑的代码片段:

def newTask = Action { implicit request =>
taskForm.bindFromRequest.fold(
        errors => BadRequest(views.html.index(Task.all(), errors)),
        label => {
          Task.create(label)
          Redirect(routes.Application.tasks())
        } 
  )
}
Run Code Online (Sandbox Code Playgroud)

所以我决定调查并发现这篇文章.

我还是不明白.

这有什么区别:

implicit def double2Int(d : Double) : Int = d.toInt
Run Code Online (Sandbox Code Playgroud)

def double2IntNonImplicit(d : Double) : Int = d.toInt
Run Code Online (Sandbox Code Playgroud)

除了明显的事实,他们有不同的方法名称.

implicit什么时候应该使用?为什么?

syntax scala keyword playframework

293
推荐指数
5
解决办法
11万
查看次数

游戏动作的明确回报

我有以下行动

def login: Result = Action(parse.json) { request =>
  if (/* Let's we say here is some validation */) {
    return BadRequest("bad")
  }

  Ok("all ok")
}
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误.Intellij建议使用Action[JsValue]类型.当我说返回将是那种类型时,我再次出现错误BadRequest,因为类型不匹配.

我试着搜索这个问题,我找到了一些建议设置Action[AnyContent]为返回类型的答案.但我仍然得到错误.

另外我需要从if... 返回...我不想else在那之后写if,因为在一些更复杂的函数中,我很可能会有很少的if语句应该打破动作,如果我使用if/else方法,代码将是噩梦.

scala playframework

1
推荐指数
2
解决办法
1312
查看次数

标签 统计

playframework ×2

scala ×2

keyword ×1

syntax ×1