Implicit Parameters and Implicit Conversions
Scala has implicit parameters and conversions. When used in a controlled manner, implicit can make working with external libraries more pleasant, and also enable some elegant patterns that you can use in your own code.
Implicit Parameters
Implicit parameters are a way to make the compiler automatically fill in some arguments when a method call misses them for some (or all) of the (implicit) parameters. The compiler will look for definitions labelled implicit of the required types. For example, suppose you want to write a program that prompts the user for some action, after displaying a message. You want to customize both the message and the string that appear on the prompt. We can assume that the prompt string will have a more default value than the message, so one way to implement it using implicit parameters is like the following:
case class Prompt(value: String) def message(msg: String)(implicit prompt: Prompt) = { println(msg) println(s...