以下に示すように、単に KeyVal オブジェクトを作成するときは暗黙的な変換が機能するのに、KeyVal である Map にキーを作成するときは機能しない理由を教えてください。
ありがとうございました。
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)