Когда кто-то импортирует мой объект, я хотел бы, чтобы ему были доступны некоторые неявные классы из других объектов (или пакетов). Наличие import
в объекте не помогает, поскольку импорт не импортируется транзитивно, поэтому я предполагаю, что должен использовать некоторые implicit
def
или val
, однако я не могу найти какой-либо разумный способ, как это сделать, только довольно подробный def
:
object Main extends App {
object A {
implicit class ExtendedMath(val x: Double) extends AnyVal {
def square = x * x
}
}
object X {
import A._
// what to write here, so that ExtendedMath is forwarded to our users?
// following works, but it seems quite verbose
implicit def extendedMath(x: Double): ExtendedMath = ExtendedMath(x)
}
import X._
val a = 0.0
println(a.square)
}
Есть ли более лаконичный способ?