0

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

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

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

4

1 回答 1

1

您已经在使用 Scala 2.10 的“隐式类”了吗?新语法糖的全部意义(唯一一点)是让您不必编写隐式转换方法。

于 2013-02-01T01:39:26.977 回答