Golang Map(字典)

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)
	}
}