go for range循環map是無序的 , 這個是go team團隊 有意為之
在進行循環遍歷的時候 , 生成了一個隨機數作為遍歷開始的位置
可以for range循環map取出所有的key , sort.Strings(keys) , 排序所有的keys
再循環所有的keys , 按這個循環取出map里的值
如果不依賴map中的key的話 , 或者map的value是個結構體 , 里面有key的值 , 不依賴map的話可以把它轉成slice
類似下面這樣
func SortMap(youMap map[string]interface{}) []interface{} { keys := make([]string, 0) for k, _ := range youMap { keys = append(keys, k) } myMap := make([]interface{}, 0) sort.Strings(keys) for _, k := range keys { myMap = append(myMap, youMap[k]) } return myMap }
