我使用了一个映射,它使用句子中的单词作为键,使用整数作为值。
func WordCount(s string) map[string]int {
var m map[string]int
m = make(map[string]int)
var substrings[]string
count := 0
substrings = strings.Split(s, " ")
for i := range substrings {
count = count + 1
m[substrings[i]] = count
}
return m
}
func main() {
fmt.Println(WordCount("I am learning GO since some days"))
}
上面的代码总是以正确的顺序显示地图,即
map[I:1 am:2 learning:3 GO:4 since:5 some:6 days:7]
但如果我改变
count = count + 1
到
count++
输出更改为:
map[learning:3 GO:4 since:5 some:6 days:7 I:1 am:2]
我知道地图迭代在 Golang 中是随机的,但为什么count = count + 1总是导致地图迭代以与 相反的有序方式返回count++?
qq_花开花谢_0
相关分类