Zrozumienie ukryte w Scali

Przechodziłem przez samouczek ramowy Scala i natknąłem się na ten fragment kodu, który mnie zdziwił:

<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>

Postanowiłem więc zbadać i natknąć sięten post.

Nadal tego nie rozumiem.

Jaka jest różnica między tym:

<code>implicit def double2Int(d : Double) : Int = d.toInt
</code>

i

<code>def double2IntNonImplicit(d : Double) : Int = d.toInt
</code>

poza oczywistym faktem, że mają różne nazwy metod.

Kiedy powinienem użyćimplicit i dlaczego?

questionAnswers(4)

yourAnswerToTheQuestion