实现它是两种不同的方式。
一个更短
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)
哪一个更好?
答案 0 :(得分:11)
第一个版本使用structural type。它使编写简短且可读的代码成为可能,但结构类型的缺点是在结构类型中调用方法时在运行时使用反射。通过反射调用方法比直接调用方法要慢。
更多详细信息,请参阅此博客文章(由我撰写):Avoid structural types when pimping libraries