我在学习go语言,然后想实现一个map的键值对转换,我的思路是:循环这个map,先增加键为值的键值对,然后把原来值为键的键值对删除.于是,我写出了如下代码:packagemainimport"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]=kdelete(maparr,k)}fmt.Println(maparr)}然后我运行如上代码,运行了几次,得到了让我非常不理解的结果,我得到的结果如下://第一次$gorunhello.gomap[400:key4500:key5key2:200100:key1300:key3]//第二次$gorunhello.gomap[200:key2300:key3500:key5key4:400100:key1]//第三次$gorunhello.gomap[100:key1200:key2300:key3400:key4500:key5]竟然只有第三次的结果是正确的.请问各位前辈,我错在了哪里?
添加回答
举报
0/150
提交
取消