我发现自己编写了很多样板scala来为函数模块添加隐式类包装器。例如,如果我为Seqs定义了这个函数
def takeWhileRight[T](p: T=>Boolean)(s: Seq[T]): Seq[T] = s.reverse.takeWhile(p).reverse
我需要编写这个(完全确定的)隐式包装器:
implicit class EnrichSeq[T](value: Seq[T]) {
def takeWhileRight(p: T=>Boolean): Seq[T] = SeqOps.takeWhileRight(p)(value)
}
这是许多人的一个例子。在每种情况下,隐式包装器最终都可以从它转发的函数中机械地导出。
是否有人知道可以自动生成此类包装器的任何工具或代码生成器?
答案 0 :(得分:1)
您正在使用Scala 2.10"隐式类"已经?新语法糖的全部要点(唯一的一点)就是让你不必编写隐式转换方法。