go语言的map查找键值对会出错?

我在学习go语言,然后想实现一个map的键值对转换,我的思路是:循环这个map,先增加键为值的键值对,然后把原来值为键的键值对删除.于是,我写出了如下代码:
packagemain
import"fmt"
funcmain(){
maparr:=map[string]string{}
maparr["key1"]="100"
maparr["key2"]="200"
maparr["key3"]="300"
maparr["key4"]="400"
maparr["key5"]="500"
fork,v:=range(maparr){
maparr[v]=k
delete(maparr,k)
}
fmt.Println(maparr)
}
然后我运行如上代码,运行了几次,得到了让我非常不理解的结果,我得到的结果如下:
//第一次
$gorunhello.go
map[400:key4500:key5key2:200100:key1300:key3]
//第二次
$gorunhello.go
map[200:key2300:key3500:key5key4:400100:key1]
//第三次
$gorunhello.go
map[100:key1200:key2300:key3400:key4500:key5]
竟然只有第三次的结果是正确的.请问各位前辈,我错在了哪里?
倚天杖
浏览 493回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript