golang map是否有顺序

2020-08-07 21:11:08

Map 是 Go 中的内置类型,它将键与值绑定到一起。可以通过键获取相应的值。 (推荐学习:go)

举例 map 如下,由于golang map内部存储机制是以key为hash的结构来实现,所以顺序是混乱的。

fruits := map[string] int {    "oranges": 100,    "apples": 200,    "banans": 300,}

如果希望是有顺序的,可以把 key 转移至 slice,将slice 进行排序,然后输出:

// Put the keys in a slice and sort it.var keys []stringfor key := range fruits {keys = append(keys, key)}sort.Strings(keys)// Display keys according to the sorted slice.for _, key := range keys {fmt.Printf("%s:%vn", key, fruits[key])}