当前位置: 首页 > 面试题库 >

如何复制地图?

裴令秋
2023-03-14
问题内容

我正在尝试将地图(amap)的内容复制到另一个地图()内aSuperMap,然后清除,
amap以便它可以在下一次迭代/循环中获取新值。问题在于,如果不清除超级地图中的参考,就无法清除地图。这是一些伪代码。

for something := range fruits{
        aMap := make(map[string]aStruct)
        aSuperMap := make(map[string]map[string]aStruct)

        for x := range something{
            aMap[x] = aData
            aSuperMap[y] = aMap
            delete(aMap, x)
    }
//save aSuperMap
  saveASuperMap(something)

}

我也尝试了一些动态的东西,但显然会引发错误(无法指定为nil)

aSuperMap[y][x] = aData

问题是如何创建关联地图?在PHP中,我只使用aSuperMap [y] [x] =
aData。似乎golang没有任何明显的方法。如果我delete(aMap, x)从超级地图中删除了
它的引用,那么它也会被删除。如果我不删除它,超级地图最终将出现重复数据。基本上,在每个循环中,它将获得aMap新值加上所有旧值。


问题答案:

您不是在复制地图,而是在复制对地图的引用。delete因此,您将同时html" target="_blank">修改原始地图和超级地图中的值。要复制地图,您必须使用如下for循环:

for k,v := range originalMap {
  newMap[k] = v
}

这是现已退休的SO文档中的示例:

// Create the original map
originalMap := make(map[string]int)
originalMap["one"] = 1
originalMap["two"] = 2

// Create the target map
targetMap := make(map[string]int)

// Copy from the original map to the target map
for key, value := range originalMap {
  targetMap[key] = value
}

摘录自地图-
复制地图
。最初的作者是JepZ。归属详细信息可以在贡献者页面上找到。该来源已获得CC
BY-SA 3.0的许可,可以在“
文档”存档中找到。参考主题ID:732和示例ID:9834。



 类似资料:
  • 在Go中,复制切片是标准费用,如下所示: 在《铁锈》中,我找不到类似的替换方法。我想到的东西是这样的: 不幸的是,我遇到了无法解决的编译错误: 如何设置?有没有更好的复制切片的方法?

  • 问题内容: 我试过了 但它产生错误: 任何的想法? 问题答案: 好吧,错误消息很清楚:不是实体。如果要映射基本元素的集合,请使用批注(来自Hibernate)或批注(来自JPA 2.0)。 因此,假设您使用的是Hibernate Annotations 3.4,请尝试以下操作: 或者,使用泛型时: 如果您使用的是Hibernate Annotations 3.5+,则更喜欢JPA 2.0注释: 或

  • 我不想重命名远程分支,如重命名本地和远程Git存储库的主分支中所述。 如何重命名尚未推送到远程分支的本地分支? 如果您还需要重命名远程分支:如何重命名Git本地和远程分支名称

  • 问题内容: 我有一个现有的virtualenv,其中包含很多软件包,但是旧版本的Django。 我想要做的就是复制此环境,因此我拥有另一个环境,该环境具有完全相同的软件包,但更新版本的Django。我怎样才能做到这一点? 问题答案: 最简单的方法是使用pip生成需求文件。需求文件基本上是一个文件,其中包含要安装(或在pip生成文件的情况下已经安装)的所有python软件包的列表,以及它们的版本。

  • 我有一个场景,我想通过会话ID登录到自定义Log4j Appender。换句话说,我想为一个包(例如com.foo.bar)设置一个记录器,然后追加自定义Appender。只有当一个请求带有相同的会话标识时,我才希望记录要为匹配会话标识的Appender编写的消息。当我打开日志记录时,我们必须动态地添加一个Appender,并将其名称设置为会话我想做的是有一个预先配置的Appender,我从log

  • 1.图册页的复制 图册页的复制,可以让一个图册页多次使用而不需重新制作。 点击图册编辑页左侧缩略图浮动工具栏上的“复制”按钮,该图册会自动增加新的已复制的图册页。 2.图册的复制 图册的复制,可以让一个图册多次使用而不需重新制作。 图册的复制是通过图册“另存为”的功能实现的。点击图册编辑页上方工具栏“保存”按钮下方的“另存为”按钮。在弹出的另存为对话框中输入新图册的名称、标签即可。