Étant donné:Définition de `implicit def` w/implicite?
trait Foo[A]
class B
puis les suivantes implicit def
:
implicit def f[A](b: B)(implicit ev: Foo[A]): String = "foo"
J'ai essayé de résoudre B => String
implicitement, mais il n'a pas réussi à compiler:
scala> implicitly[B => String]
<console>:15: error: No implicit view available from B => String.
implicitly[B => String]
^
Je devine que la implicit Foo[A]
jette une clé, pour ainsi dire, dans ma résolution implicite de B => String
.
Comment est-ce que je peux ajuster l'argument de implicitly
, par exemple B => String
, de sorte que ce qui précède compile?
Avez-vous essayé avant implicitly [Foo [B]] '(qui est requis pour votre conversion implicite)? – cchantep
C'est un bon point - mon erreur. –
BTW an 'implicite A => B' est une' conversion implicite' plutôt qu'une classe de type, ce qui conduit à l'avertissement correspondant (car il peut rapidement encombrer le code). J'utiliserais plutôt un trait 'MyFunT [A] extends (A => String)'. – cchantep