trait Foo[A]
class B
し、次のimplicit def
:
implicit def f[A](b: B)(implicit ev: Foo[A]): String = "foo"
私は暗黙のうちにB => String
を解決しようとしましたが、それはコンパイルに失敗しました:
scala> implicitly[B => String]
<console>:15: error: No implicit view available from B => String.
implicitly[B => String]
^
私は推測していますimplicit Foo[A]
はレンチを投げているので、言い換えれば暗黙的な解像度はB => String
です。
上記のように、implicitly
の引数i..e B => String
を調整するにはどうすればよいですか?
暗黙的に[Foo [B]](あなたの暗黙の変換の前提条件)の前に試したことがありますか? – cchantep
それは良い点です - 私の間違い。 –
BTW '暗黙のA => B'は、型付きではなく暗黙の変換であり、対応する警告につながります(コードがすばやく混乱する可能性があるため)。むしろ '特性MyFunT [A] extends(A => String)'を使うでしょう。 – cchantep