Ketika seseorang mengimpor objek saya, saya ingin beberapa kelas implisit dari objek (atau paket) lain tersedia untuk mereka. Memiliki import
di objek tidak membantu, karena impor tidak diimpor secara transitif, oleh karena itu saya berasumsi saya harus menggunakan beberapa implicit
def
atau val
, namun saya tidak dapat menemukan cara yang masuk akal untuk mencapai ini, hanya def
yang cukup bertele-tele:
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)
}
Apakah ada cara yang lebih ringkas?