class Test {
import scala.collection._
class Parent
class Child extends Parent
implicit val children = mutable.Map[String, Child]()
def createEntities[T <: Parent](names: String*) = names.foreach(createEntity[T])
def createEntity[T <: Parent](name: String)(implicit map: mutable.Map[String, T]): Unit = map.get(name) match {
case None => println(name + " not defined.")
case _ =>
}
}
Pourquoi le compilateur se plaint:valeur implicite non trouvée
erreur: n'a pas pu trouver la valeur implicite de carte du paramètre: scala.collection.mutable.Map [String, T] names.foreach (createEntity [T ])
?
Il est la 'names.foreach (createEntity [T])' appel qui exige un argument implicite. Si vous supprimez cet appel, bien sûr, il compile! –
J'ai compris. Il est légal d'appeler: createEntity [Child]() mais pas createEntity [T]() car il y a une valeur implicite pour mutable.Map [String, Child] mais none pour mutable.Map [String, T] – xiefei
Oui, précisément . –