Может ли кто-нибудь сказать мне, почему, как показано ниже, неявное преобразование работает при простом создании объекта KeyVal, но не работает при создании ключа в карте, которая является KeyVal.
Спасибо.
object o {
case class KeyVal(i: Int)
object KeyVal {
implicit def strToKeyVal(s:String) = KeyVal(s.toInt)
}
}
import o._
val x : KeyVal = "1" // Works fine to create a KeyVal
val x : Map[KeyVal, String] = Map("1" -> "One") // Type Mismatch: found (String, String), wants (KeyVal, String)