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?

¿Fue útil?

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