golang的map

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_42150559/article/details/94552888

golang的map跟其他语言一样

一个键值对的数据结构
key和value
存储时给key,取出时也可以根据key取出相应的value

map基础概念

map内的数据是无序的
相同的key只能在一个map中出现一次
如果说插入的key相同那么其中的value将会进行替换

基础语法

初始化一个map

info := map[int]string{
	110:"mike",
	111:"yoyo",
	112:"lily"
}

切片和函数是不能作为key的
以下是错误示范

dict := map[[]string]int{} //err

定义一个map的变量,并创建实例

//定义一个变量,类型为map[int]string
var m1 map[int]string
//通过make创建实例
m2 := make(map[int]string)
//也可以创建的时候指定最大容量
m3 := make(map[int]string,10)

给map赋值

m3 := make(map[int]string,10)
m3[1]="mike"
m3[2]="go"

在初始化的时候直接赋值

m4 := map[int]string{1:"mike",2:"go"}

如果说key相同,其中的value则会直接替换

m4 := map[int]string{1:"mike",2:"go"}
m4[2]="c++"

map的遍历

func main(){
	m := map[int]string(1:"mike",2:"yoyo",3:"go")
	//第一个返回值是key,第二个返回值是value,返回结果是无序的
	for key,value := range m{
	}
}

判断key是否存在

value,isExist := m[0]
if isExist == true {
	println("exist")
} else{
	println("is not exist")
}

删除指定key的键值对

func main(){
m := map[int]string(1:"mike",2:"yoyo",3:"go")
//删除key为1的键值对
delete(m,1)
}

map作为函数的参数,是作为引用变量进行传递的

猜你喜欢

转载自blog.csdn.net/qq_42150559/article/details/94552888