GO 的map 数据类型和其他语言一样都是基于hash 表来做的key-value的组合
go 创建map的两种方法
1 使用 make 关键字进行创建
例如:
dict := make(map[string]int)
其中string 代表了key是string类型的 int 代表 value 是int 类型
设置键值对
dict["oracle"] = 1521
dict["mysql"] = 3306
dict["redis"] = 6379
2 直接使用 map 创建
dict1 := map[string]int {
"key": 123,
"key1": 456,
}
这种情况创建的map 最后一个key-value必须使用 逗号 结束
根据key 取出 value
例如 我想取出 dict 的map 里面key 为 “oracle”的value
Orcl := dict["oracle"]
如果取一个key不存在的情况
go 语言中,如果你尝试从map中取出一个key 不存在的value,这种情况下不会报错 !!,会返回你定义的map的value的数据类型的默认值!!
例如 我定义了一个key 为string类型value为int 类型
dict := make(map[string]int)
dict["oracle"] = 1521
dict["mysql"] = 3306
dict["redis"] = 6379
然后尝试去取不存在的key
notExists := dict["notExists"]
这种情况下会返回 int 类型的默认值 也就是 0 如果value 是string 则返回 ” “
删除一个键值对
删除键值对使用delete 函数
例如 删除dict 中的redis
delete(dict, "redis")
, 如果存在则会删除掉,不存在也不要紧,不会发生错误
遍历 map
遍历map 使用 range, 由于map 类型本身就是无序的,因此遍历的时候取出来的顺序有可能就是无序的
例如:
for k, v := range dict {
fmt.Println(k)
fmt.Println(v)
}