为什么 scala immutable Map apply() 符合函数类型?
Why does scala immutable Map apply() conform to a functional type?
为什么下面的代码可以通过?是否缺少我缺少的隐式转换?
object Test {
def map1[A]: Int => A = Map()
}
Map[A, B]
扩展了 MapLike
,扩展了 PartialFunction[A, B]
,扩展了 Function1[A, B]
.
A Map[Int, A]
是 Int => A
的一个函数。 Map.apply()
returns 一个新映射,类型注释只是将其向上转换为 Int => A
。
在 documentation 中,您可以看到 Map[A,B]
扩展了 A => B
(在线性超类型下)。由于您的方法的类型注释,编译器将推断映射为 Map[Int,A]
.
类型
为什么下面的代码可以通过?是否缺少我缺少的隐式转换?
object Test {
def map1[A]: Int => A = Map()
}
Map[A, B]
扩展了 MapLike
,扩展了 PartialFunction[A, B]
,扩展了 Function1[A, B]
.
A Map[Int, A]
是 Int => A
的一个函数。 Map.apply()
returns 一个新映射,类型注释只是将其向上转换为 Int => A
。
在 documentation 中,您可以看到 Map[A,B]
扩展了 A => B
(在线性超类型下)。由于您的方法的类型注释,编译器将推断映射为 Map[Int,A]
.