scala – 在Map对象上应用方法?
发布时间:2020-12-16 18:11:25 所属栏目:安全 来源:网络整理
导读:首先,让我提前道歉,因为我在堆栈溢出时发布的第一个问题是什么,可能是一个非常愚蠢的问题. 由于scala中的Map使用以下语法进行实例化: val myMap=Map(1-”value1”,2-”value2”) 我期待scala.collection.immutable中的Map对象提供一个带有大致类似的签名的a
首先,让我提前道歉,因为我在堆栈溢出时发布的第一个问题是什么,可能是一个非常愚蠢的问题.
由于scala中的Map使用以下语法进行实例化: val myMap=Map(1->”value1”,2->”value2”) 我期待scala.collection.immutable中的Map对象提供一个带有大致类似的签名的apply方法: def apply[A,B](entries :(A,B)*):Map[A,B] 显然我应该是盲人,但我找不到这样的方法.它在哪里定义? 此外,有人可以给我有关Map对象中定义的Map1,Map2,Map3,Map4类的用途的信息吗?它们应该由开发人员使用还是仅由语言和/或编译器在内部使用?它们是否与我上面提到的地图实例化方案有关? 在此先感谢您的帮助. 解决方法
apply看起来像是在scala.collection.generic.GenMapFactory上定义的,它是scala.collection.immutable.Map的超类.出于某种原因,Scaladoc只是忽略了2.9.2的这种方法. (正如Rogach所说,它是在
2.9.1年.)
Map1 … Map4(与EmptyMap一起使用)是简单的优化.这些是在Map.scala内部定义的,实际上只能直接容纳四个键和值而无需任何进一步的间接.如果尝试添加到Map4,将自动创建HashMap. 您通常不需要手动创建Map [1-4]: scala> Map('a -> 1) res0: scala.collection.immutable.Map[Symbol,Int] = Map('a -> 1) scala> res0.isInstanceOf[scala.collection.immutable.Map.Map1[_,_]] res1: Boolean = true (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读