MAP的定义
map是一个无序的 key-vlaue 的集合
map的定义为: map[key类型]value类型
map类型的变量需要使用make()函数来分配内存
使用make创建: make(map[key]value,cap(初始容量) )
map的长度也是可变的
var n map[string]int
n = make(map[string]int ,20)
var m = make(map[string]int ,20)
Map的使用
map的赋值
var m = make(map[string]string ,20)
m["key"]="value"
fmt.Println(m)
//输出
//map[key:value]
声明时填充数据
var m2 = map[string]int{
"key1":1,
"key2":2,
}
fmt.Println(m2)
//输出
//map[key1:1 key2:2]
MAP的删除
var m2 = map[string]int{
"key1":1,
"key2":2,
}
delete(m2,"key1")
fmt.Println(m2)
//输出
//map[ key2:2]
go语言中 可以判断map中的某个键是否存在
value,ok := map[key]
value = 对应key的值 ok 返回 true,false
当此key不存在时:
var m2 = map[string]int{
"key1":1,
"key2":2,
}
delete(m2,"key1")
v,ok := m2["key1"]
fmt.Println(v,ok)
fmt.Println(m2)
//输出
//0 false
//map[ key2:2]
当此key存在时
var m2 = map[string]int{
"key1":1,
"key2":2,
}
delete(m2,"key1")
v,ok := m2["key2"]
fmt.Println(v,ok)
fmt.Println(m2)
//输出
//2 true
//map[ key2:2]
MAP的遍历
range 遍历
var m2 = map[string]int{
"key1":1,
"key2":2,
}
for k,v := range m2 {
fmt.Println("key = ",k," value = ",v)
}
//输出
//key = key1 value = 1
//key = key2 value = 2