Каков наилучший способ использования enrich-my-library в scala?
Это два разных способа реализации.
Один короче
implicit def toR1(s:String) = new { def getLength = s.length)}
Второй длиннее
class R2(s:String){def getLength2 = s.length)}
implicit def toR2(s:String) = new R2(s)
Какой из них лучше?
1 ответ
Решение
Первая версия использует структурный тип. Это позволяет писать короткий и читаемый код, но недостатком структурных типов является то, что отражение используется во время выполнения, когда вы вызываете метод структурного типа. Вызов метода через отражение медленнее, чем прямой вызов метода.
Больше подробностей в этом посте (написано мной): избегайте структурных типов при переходе на библиотеки