gpt4 book ai didi

scala - 在 Map 对象上应用方法?

转载 作者:行者123 更新时间:2023-12-05 00:34:50 24 4
gpt4 key购买 nike

首先,让我提前为我在堆栈溢出上发布的第一个问题道歉,而且可能是一个非常愚蠢的问题。

由于 scala 中的 Map 是使用以下语法实例化的:

val myMap=Map(1->”value1”,2->”value2”)

我期待来自 scala.collection.immutable 的 Map 对象提供 apply签名的方法大致如下:
def apply[A,B](entries :(A,B)*):Map[A,B]

明明应该是瞎了眼,却找不到这样的方法。它在哪里定义?

此外,有人可以告诉我有关 Map1 用途的信息吗? , Map2 , Map3 , Map4 Map 中定义的类目的 ?它们应该由开发人员使用还是仅由语言和/或编译器在内部使用?它们是否与我在上面询问的 map 实例化方案有关?

在此先感谢您的帮助。

最佳答案

apply看起来它是在 scala.collection.generic.GenMapFactory 上定义的,scala.collection.immutable.Map 的父类(super class).出于某种原因,Scaladoc 只是在 2.9.2 中忽略了这个方法。 (正如 Rogach 所说,它在 2.9.1 中。)
Map1Map4 (与私有(private)的 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

关于scala - 在 Map 对象上应用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10224920/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com