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?