遍历golang的map,插入新的键。

huangapple go评论65阅读模式
英文:

Ranging over golang map, inserting the new key

问题

这段代码为什么会无限循环?理想情况下,它应该只运行一次。有人可以解释一下吗?

英文:
func hello() {
	myMap := make(map[int]bool)
	i := 0
	myMap[0] = false  
	for val, ok := myMap[i]; ok && !val; {
		fmt.Println("val", val)
		i--
	}
}

Why does this code run infinitely ? ideally it should once only once. can someone explain this ?

答案1

得分: 1

okval没有被更新,这是为了更新这些值。

for val, ok := myMap[i]; ok && !val; {
		fmt.Println("val", val)
		i--
		val, ok = myMap[i]
	}

okval没有被更新,这是为了更新这些值。

英文:

ok and val's are not update, this for update that values

for val, ok := myMap[i]; ok && !val; {
		fmt.Println("val", val)
		i--
		val, ok = myMap[i]
	}

huangapple
  • 本文由 发表于 2022年2月24日 21:15:56
  • 转载请务必保留本文链接:https://go.coder-hub.com/71252582.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定