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 _ =>
}
}
Почему компилятор жалуется:неявное значение не найдено
ошибка: не удалось найти неявное значение для отображения параметра: scala.collection.mutable.Map [String, T] names.foreach (CreateEntity [T ])
?
Это 'names.foreach (CreateEntity [T])' вызов, который требует неявный аргумент. Если вы удалите этот звонок, он, конечно же, скомпилируется! –
Получил это. Это законно для вызова: createEntity [Child](), но не createEntity [T](), потому что существует неявное значение для mutable.Map [String, Child], но нет для mutable.Map [String, T] – xiefei
Да, точно , –