英文:
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
ok和val没有被更新,这是为了更新这些值。
for val, ok := myMap[i]; ok && !val; {
fmt.Println("val", val)
i--
val, ok = myMap[i]
}
ok和val没有被更新,这是为了更新这些值。
英文:
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]
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论