1 遍歷順序
Go語言里的map,是不保證遍歷順序的(這一點很好理解)。甚至同樣內容的map,兩次遍歷的順序,也可能不一樣。下面是一個例子:
m := map[string]int{"a1": 1,"b2": 10,"c3": 2,} for k, v := range m {fmt.Printf("%s=%d;", k, v)} // c3=2;a1=1;b2=10; println() for k, v := range m {fmt.Printf("%s=%d;", k, v)} // a1=1;b2=10;c3=2;
2 遍歷時進行操作
遍歷map的時候,可以對map進行操作(增、刪、改)。如果遍歷的過程中,刪除了某個已經遍歷過的entry,不會有任何問題。如果刪除了某個還未被遍歷到的entry,那么這個entry就不會被遍歷到了。如果遍歷過程中添加了新的entry,這個entry則不一定能在后續被遍歷到