¿Cuál es la mejor manera de usar Enrich-My-Library en Scala?
-
29-10-2019 - |
Pregunta
Las son dos maneras diferentes de implementarlo.
uno es más corto
implicit def toR1(s:String) = new { def getLength = s.length)}
segundo es más largo
class R2(s:String){def getLength2 = s.length)}
implicit def toR2(s:String) = new R2(s)
¿Cuál es mejor?
Solución
La primera versión usa una tipo estructural .Permite escribir código corto y legible, pero una desventaja de los tipos estructurales es que la reflexión se usa en tiempo de ejecución cuando llame al método en el tipo estructural.Llamar a un método a través de la reflexión es más lento que llamar directamente a un método.
Más detalles se encuentran en esta publicación de blog (escrito por mí): Evite los tipos estructurales cuando las bibliotecas de Pimping
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow