Compreensão implícita em Scala
Eu estava fazendo o meu caminho através do tutorial de playframework Scala e me deparei com este trecho de código que me intrigou:
def newTask = Action { implicit request =>
taskForm.bindFromRequest.fold(
errors => BadRequest(views.html.index(Task.all(), errors)),
label => {
Task.create(label)
Redirect(routes.Application.tasks())
}
)
}
Então eu decidi investigar e me depareiesta postagem.
Eu ainda não entendi.
Qual é a diferença entre isso:
implicit def double2Int(d : Double) : Int = d.toInt
e
def double2IntNonImplicit(d : Double) : Int = d.toInt
além do fato óbvio, eles têm nomes de métodos diferentes.
Quando devo usarimplicit
e porque?