在Scala中自动生成隐式包装器的工具

时间:2013-02-01 00:53:57

标签: scala code-generation implicit-conversion

我发现自己编写了很多样板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)
}

这是许多人的一个例子。在每种情况下,隐式包装器最终都可以从它转发的函数中机械地导出。

是否有人知道可以自动生成此类包装器的任何工具或代码生成器?

1 个答案:

答案 0 :(得分:1)

您正在使用Scala 2.10"隐式类"已经?新语法糖的全部要点(唯一的一点)就是让你不必编写隐式转换方法。