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



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

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

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

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

最新更新