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:
<code>def newTask = Action { implicit request => taskForm.bindFromRequest.fold( errors => BadRequest(views.html.index(Task.all(), errors)), label => { Task.create(label) Redirect(routes.Application.tasks()) } ) } </code>
Então eu decidi investigar e me depareiesta postagem.
Eu ainda não entendi.
Qual é a diferença entre isso:
<code>implicit def double2Int(d : Double) : Int = d.toInt </code>
e
<code>def double2IntNonImplicit(d : Double) : Int = d.toInt </code>
além do fato óbvio, eles têm nomes de métodos diferentes.
Quando devo usarimplicit
e porque?