Implicites Implicites
Un paramètre ou une méthode implicite est un élément défini avec le mot implicit qui est appelé automatiquement à certaines occasions sans devoir être spécifié explicitement.
1. Paramètres implicites Implicites:paramètres
Une méthode ou une classe peuvent prendre en paramètre un argument implicite.
Prenons comme exemple une liste sur laquelle on applique la méthode sorted.
Une nouvelle liste ordonnée est créée avec l’Ordering implicite contenu dans la classe String qui trie les éléments par ordre alphabétique.
val liste = List("blanc", "azur", "pourpre", "violet")
// liste: List[String] = List(blanc, azur, pourpre, violet)
liste.sorted
// res161: List[String] = List(azur, blanc, pourpre, violet)
On définit un implicit de type Ordering qui classe des String par taille croissante. Pour cela, on utilise la méthode by propre à Ordering qui permet d’appliquer une fonction anonyme avec la méthode length de String (voir chapitre Un aperçu du langage - Méthodes). Fonctions:anonymes
implicit val ordre: Ordering[String] = Ordering.by(_.length)
// ordre: Ordering[String] = scala.math.Ordering$$anon$7@22ffd61f
liste.sorted
// res162: List[String] = List(azur, blanc, violet, pourpre)
On peut aussi appeler cette méthode en renseignant directement...