golang对map的理解

一、map的基本介绍

map 是 key-value 数据结构,又称为字段或者关联数组。类似其它编程语言的集合

二、map的声明

var map 变量名 map[keytype]valuetyp

map的 key 可以是很多种类型,比如 bool, 数字,string, 指针, channel , 还可以是只包含前面几个类型的接口, 结构体, 数组。
通常 key 为 int 、string
注意: slice, map 还有 function 不可以,因为这几个没法用 == 来判断

valuetype 的类型和 key 基本一样
通常为: 数字(整数,浮点数),string,map,struct

map为valuetype的例子

studentMap:=make(map[string]map[string]string)

studentMap["stu1"]=make(map[string]string, 3)	//使用前一定要make
studentMap["stu1"]["name"]="tom"
studentMap["stu1"]["sex"]="男"
studentMap["stu1"]["address"]="武汉"

fmt.Println(studentMap)			//map[stu1:map[address:武汉 name:tom sex:男]]
fmt.Println(studentMap["stu1"])			//map[address:武汉 name:tom sex:男]
fmt.Println(studentMap["stu1"]["address"])		//武汉

声明举例:
var a map[string]string
var a map[string]int
var a map[int]string
var a map[string]map[string]string

注意事项

1.声明是不会分配内存的,初始化需要 make ,分配内存后才能赋值和使用
2.map 在使用前一定要 make
3.map 的 key 是不能重复,如果重复了,则以最后这个 key-value 为准
4.map 的 value 是可以相同的.
5.map 的 key-value 是无序

三、map的初始化

方式一

var a map[string]string
a=make(map[string]string, 10) //等同于a:=make(map[string]string, 10)
a["no1"]="宋江"
a["no2"]="吴用"
a["no3"]="武松"

fmt.Println(a)	//map[no1:宋江 no2:吴用 no3:武松]

方式二

a:=map[string]string{
   
	"no1":"宋江"

你可能感兴趣的:(golang,golang)