理解
map是由一组无序的键key值value对集合的内置类型,可以通过键来获取对应的值,map和slices一样,也是引用类型
注意:map之间不能使用==操作符来判断
创建map
语法:map[type of key]type of value
var myMap map[string]int //nil
此时map是零值,不允许向map向添加元素,我们需要使用make函数初始化map
myMap := make(map[string]int)
添加map元素
map添加元素的方法和数组一致
myMap["car"] = 1
myMap["truck"] = 2
myMap["jeep"] = 3
也可以在初始化的时候就添加元素
myMap := map[string]int{
"kitty": 10,
"Miko": 12,
}
删除map元素
语法:delete(mapName, key),该函数没有返回值
delete(myMap, "truck")
获取map元素
与数组一致
fmt.Println(myMap["kitty"]) //10
map排序
map本身是散列表来实现的,所以是无序的,如果想要以键来对map排序,需要先提取key到slice中,再对slice排序,以下摘用大神们的代码段举例
func main() {
var m = map[string]int{
"unix": 0,
"python": 1,
"go": 2,
"javascript": 3,
"testing": 4,
"philosophy": 5,
"startups": 6,
"productivity": 7,
"hn": 8,
"reddit": 9,
"C++": 10,
}
var keys []string
for k := range m {
keys = append(keys, k)
}
sort.Strings(keys)
for _, k := range keys {
fmt.Println("Key:", k, "Value:", m[k])
}
}
以上就是关于go语言中map的一些基本理解和操作,之后会持续更新的~
感谢你的阅读~