Map-字典,是一种键值对形式的数据结构,是一种数据集合。
它包含key和value两个元素,key是建,value是存储的值,查找的时候,基于key可以找到value,并且key是不可重复的。
Map的特性就是:
1、以键-值对形式存储数据
2、在一个map中,键是不重复的
3、键是未排序的
Map的声明格式:
map[K]V
说明:map是关键字,表示要声明一个map,K表示map的键,map的键的类型用中括号[]包括,V表示map的值,值类型跟在中括号后面。
声明方式:
//map的声明
var map1 = map[int]string
创建方式:
//map的创建
map1 := make(map[int]string)
元素赋值:
map1[1] = "value1"
map1[2] = "value2"
元素查找:
_,ok2 :=map1[1]
if ok2 {
fmt.Println("存在key为1的值")
}
map遍历:
可以用for循环进行遍历,有key的遍历和value的遍历
//map key的遍历
for k := range map1 {
fmt.Printf("map1的key:%v \n", k)
}
//map value的遍历
for _,v := range map1 {
fmt.Printf("map1的value:%v \n", v)
}
元素删除:
delete(map1, 1)
golang内置了一些操作函数,delete就是其中一个,用来删除map中的元素
delete(map1, 1)
完整代码:
package main
import "fmt"
func main() {
//map的创建
map1 := make(map[int]string)
map1[1] = "value1"
map1[2] = "value2"
//元素查找
_,ok :=map1[3]
if ok {
fmt.Println("存在key为3的值")
}
_,ok2 :=map1[1]
if ok2 {
fmt.Println("存在key为1的值")
}
//map key的遍历
for k := range map1 {
fmt.Printf("map1的key:%v \n", k)
}
//map value的遍历
for _,v := range map1 {
fmt.Printf("map1的value:%v \n", v)
}
delete(map1, 1)
fmt.Println("删除key=1后遍历")
//map key的遍历
for k := range map1 {
fmt.Printf("map1的key:%v \n", k)
}
//map value的遍历
for _,v := range map1 {
fmt.Printf("map1的value:%v \n", v)
}
}