00-1010map在哈希表中存储键值对。集合映射中的每个元素都是键值对。map[key]valuekey是操作map的唯一标准。您可以添加/删除/修改/检查地图中元素的键值是否唯一。添加重复的键将覆盖先前的元素映射是值类型,并且只有null指针(nil)func main(){ 0
var m映射[字符串]int
Fmt。Println(m==nil) //输出:真
Fmt。Printf('%p ',m) //输出:0x0
}映射中的键/值,多类型声明userinfo :=映射[字符串]接口{ } { 0
名称' : 'z3 ',
年龄' : 16,
性别' : '女孩',
}map在写入数据时不是并发安全的,可以与RWMutex结合使用以确保并发安全(RWMutex将在后面解释)
00-1010使用make函数实例化没有初始值的地图。实例化后,有一个内存地址,而不是nil func main(){ 0
m :=make(映射[字符串]字符串)
Fmt。Println(m==nil)//输出:false
Fmt。Printf('%p ',m)//输出:内存地址0xc000070330
}您可以在声明地图时直接为地图分配初始值。单行和多行书写时注意初始值的语法差异。映射中元素的键值对的语法满足:key:value。
键和值的类型必须严格对应于映射[key:value]类型。
func main(){ 0
m :=map[string]string { ' name ' : ' small Ming ',' address' :' Beijing'}
m1 :=映射[字符串]字符串{
名称' : 'smallming ',
地址' : '北京',
}
Fmt.println (m,M1)//地图[地址:北京名:小明]地图[地址:北京名:小明]
}
第三,操作地图中的元素
使用键判断如果键不存在,新的数据将被添加到映射中,如果键存在,映射中的元素funcmain()将被覆盖{ 0
m :=make(映射[字符串]字符串)
Fmt。Println(m==nil)//输出:false
Fmt。Printf('%p ',m)//输出:内存地址0xc000070330
}Go语言标准库提供了删除地图元素的功能,可以使用顶级delete()来完成。1.使用键存在删除元素。
2.如果不存在,地图中的内容将保持不变,并且不会报告错误。
func main(){ 0
m :=make(map[string]int)
m【‘钱’】=5
Fmt。Println(m) //输出:map[money:5]
删除(m,“无键”)
Fmt。Println(m) //输出:map[money:5]
删除(m,‘钱’)
Fmt。Println(m) //输出:map[]
}获取映射中指定键对应的值。使用:映射变量[key]获取与该键对应的值。
键和值的类型必须严格对应于映射[键]值的类型。