【发布时间】:2021-10-08 20:32:49
【问题描述】:
鉴于以下代码,我预计会出现无限循环,但循环会在某个点停止。
m := make(map[int]string, 4)
m[0] = "Foo"
for k, v := range m {
m[k+1] = v
}
我无法弄清楚幕后发生了什么,因为不同的执行返回不同的输出。例如,这些是来自不同执行的一些输出:
map[0:Foo 1:Foo 2:Foo 3:Foo 4:Foo 5:Foo 6:Foo 7:Foo]
map[0:Foo 1:Foo]
map[0:Foo 1:Foo 2:Foo]
range 如何在特定点退出循环,退出条件是什么?
【问题讨论】:
-
github.com/golang/go/issues/9926 希望对您有所帮助
标签: dictionary go