Понимание неявного в Scala

Я просматривал учебник по 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())
        } 
  )
}

Поэтому я решил исследовать и наткнулся на этот пост .

Я до сих пор не понимаю.

В чем разница между этим:

implicit def double2Int(d : Double) : Int = d.toInt

и

def double2IntNonImplicit(d : Double) : Int = d.toInt

, кроме очевидного факта, что у них разные имена методов.

Когда следует использовать implicitи почему?

291
задан Andrii Abramov 10 July 2017 в 21:32
поделиться