Quelle est la meilleure façon d'utiliser Enrich-my-Library à Scala?
-
29-10-2019 - |
Question
Sont deux moyens différents de l'implémenter.
On est plus court
implicit def toR1(s:String) = new { def getLength = s.length)}
Le deuxième est plus long
class R2(s:String){def getLength2 = s.length)}
implicit def toR2(s:String) = new R2(s)
Quel est le meilleur?
La solution
La première version utilise un type structurel. Il permet d'écrire du code court et lisible, mais un inconvénient des types structurels est que la réflexion est utilisée lors de l'exécution lorsque vous appelez la méthode dans le type structurel. Appeler une méthode via la réflexion est plus lent que d'appeler une méthode directement.
Plus de détails figurent dans cet article de blog (écrit par moi): Évitez les types structurels lors de la proxénéteur des bibliothèques
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow