gpt4 book ai didi

go - 将 map 分配给 Golang 中的 map

转载 作者:IT王子 更新时间:2023-10-29 02:15:33 26 4
gpt4 key购买 nike

我创建并预填充了一个类似的子映射,然后在分配它时,我发现我最终引用了同一个变量。

可以看看here

package main

import "fmt"
import "strconv"

func main() {
fmt.Println("Hello, playground")
var hour map[string]map[string]string
var minutes map[string]string

minutes = make(map[string]string)
for i := 0; i < 2; i++ {
iString := strconv.Itoa(i)
minutes[iString] = "EMPTY"
}
fmt.Println("Minutes")
fmt.Println(minutes)

hour = make(map[string]map[string]string)
for i := 0; i < 2; i++ {
iString := strconv.Itoa(i)
hour[iString] = make(map[string]string)
hour[iString] = minutes
}
fmt.Println("Hour")
fmt.Println(hour)

hour["0"]["1"] = "FULL"
fmt.Println("Modified Hour")
fmt.Println(hour)
}

所以,很明显 hour["0"]["1"]hour["1"]["1"] 都被修改了.

在这种情况下,一种方法是将 map 分钟 复制到我为每小时创建的新 map 中。 这是唯一的方法吗?

如果是,则copying maps over a for loop是最好的方法。对吗?

最佳答案

In this case, one way is to copy the map minutes into the new map that I had created for every hour. Is this the only way?

是的。还有什么可以工作? Go 没有写时复制或类似的概念。

If yes, then copying maps over a for loop is the best approach. Is that correct?

是的。 (但取决于您对“最佳”的定义)。

关于go - 将 map 分配给 Golang 中的 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33547378/

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