【发布时间】:2016-03-11 02:28:43
【问题描述】:
这是我的代码(golang)
func main() {
names := []string{"1", "2", "3"}
for index, name := range names {
println(index, name)
}
myMap := map[string]string{
"A": "Apple",
"B": "Banana",
"C": "Charlie",
}
for key, val := range myMap {
fmt.Println(key, val)
}
}
这就是结果
0 1
B Banana
1 2
2 3
C Charlie
A Apple
- 为什么名称和 myMap 混合在一起?
- 为什么 myMap 的顺序不同?
【问题讨论】:
-
首先,简单的一个: 2. 地图的顺序不同 就像@Akavall 评论的那样,这在他的链接中进行了解释。它的要点是哈希表。 1.这是一个奇怪的问题,通过 fmt 包的代码,它只是在缓冲区中写入,然后再写入。在控制台中以不同的变体运行您的代码 100 次 runtime.GOMAXPROCS 我无法重现它,它总是打印完整的数组,然后是地图,但是,当我使用 Go 插件在 IntelliJ 上运行它时,您的行为就会发生。您是在使用它还是在控制台上尝试?您可能偶然发现了一个插件错误。
-
谢谢。我在 intellij 上运行它。
-
@Akavall:这个问题不是完全重复。完全重复:此问题涵盖的内容与之前关于该主题的问题完全相同。
标签: go