我正在通过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什么时候应该使用?为什么?