gpt4 book ai didi

dictionary - 在 Golang 中添加映射键的安全方法

转载 作者:数据小太阳 更新时间:2023-10-29 03:39:43 24 4
gpt4 key购买 nike

由于这个事实:

If a map entry is created during iteration, that entry may be produced during the iteration or may be skipped. The choice may vary for each entry created and from one iteration to the next.

在迭代期间将键值添加到映射是不安全的:

var m = make(map[string]int)
m["1"] = 1
m["2"] = 2
m["3"] = 3

for k, v := range m {
if strings.EqualFold( "2", k){
m["4"] = 4
}
fmt.Println(k, v)
}

有时会生成 "4" key ,有时不会。

让它始终生成的解决方法是什么?

最佳答案

使用要添加到原始 map 的项目创建另一个 map ,并在迭代后合并它们。

var m = make(map[string]int)
m["1"] = 1
m["2"] = 2
m["3"] = 3

var n = make(map[string]int)

for k := range m {
if strings.EqualFold("2", k) {
n["4"] = 4
}
}

for k, v := range n {
m[k] = v
}

for _, v := range m {
fmt.Println(v)
}

关于dictionary - 在 Golang 中添加映射键的安全方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51023359/

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