Gegeben:Definition `implizit def 'w/Implizit?
trait Foo[A]
class B
und die folgende implicit def
dann:
implicit def f[A](b: B)(implicit ev: Foo[A]): String = "foo"
ich versuchte B => String
implizit zu lösen, aber es versäumt zu kompilieren:
scala> implicitly[B => String]
<console>:15: error: No implicit view available from B => String.
implicitly[B => String]
^
ich, dass die implicit Foo[A]
wirft sozusagen einen Schraubenschlüssel in meine implizite Auflösung von B => String
.
Wie kann ich die implicitly
's Argument, i..e B => String
, so dass die oben genannten kompiliert?
Haben Sie zuvor 'implizit [Foo [B]]' versucht (was ist die Voraussetzung für Ihre implizite Konvertierung)? – cchantep
Das ist ein guter Punkt - mein Fehler. –
Übrigens ist ein "implizites A => B" eine "implizite Umwandlung" und nicht eine Typenklasse, die zu der entsprechenden Warnung führt (da sie den Code schnell überladen kann). Würde lieber ein 'Merkmal verwenden MyFunT [A] erweitert (A => String)'. – cchantep