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?

Était-ce utile?

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
scroll top