如何在隐式方法中引用"this"



给定一个案例类和配套对象,如下所示:

case class Example(a: String)
object Example {
implicit def concat(b: String): Example =
Example(this.a + b)
}

如何使隐式方法编译?换句话说,是否可以引用已调用隐式方法的当前实例?

我认为您想要的是以下内容:

object Foo {
implicit class RichExample(val e: Example) {
def concat(b: String): Example = Example(e.a + b)
}
}

或使用匿名隐式类

object Foo {
implicit def richExample(e: Example) = new {
def concat(b: String): Example = Example(e.a + b)
}
}

用法

然后你可以像这样使用它

import Foo._
Example("foo").concat("bar")

导入和伴随对象

如果对象被调用Example,那么它将成为类Example的伴随对象,并且您不必import Foo._使用扩展方法。

相关内容

  • 没有找到相关文章

最新更新