0
を暗黙の価値を置くためのケースを考えてみましょう:シングルトンタイプについての暗黙的な変換を可能にするために
class T[A0, B0](val a: A0, val b: B0)
class A
class B(val a: A) {
b =>
implicit def t: T[a.type, b.type] = new T(a, b)
}
val b = new B(new A)
val t1 = implicitly[T[b.a.type, b.type]]// can't compile, I want t1 = b.t
シングルトン型パラメータの暗黙的な変換を有効にする方法?動作しますが、醜い
class T[A0, B0, H0](val a: A0, val b: B0)
class A
class B(val a: A) {
b =>
class H
object H{
implicit def t: T[a.type, b.type, b.H] = new T(a, b)
}
}
val a = new A
val b = new B(a)
val t1 = implicitly[T[b.a.type, b.type, b.H]]
:
はトレードオフを考慮してください。良い方法はありますか?
明示的に 'b._'をインポートしたくないと思いますか? –