一.map介绍
map是key-Value数据结构,又称为字段或者关联数组。类似其他编程语言的集合,在编程中经常使用。
二.map的声明
基本语法:map是无序的
var map变量名 map[keytype] valuetype
key可以是什么类型
golang中的map,的key可以是很多种类型,比如bool,数字,string,指针,channel,还可以是只包含前面几个类型的接口,结构体,数组
通常为int,string
注意:slice,map,function不可以为key的数据类型。
value 可以是什么类型
valuetype的类型和key基本一样。
通常为:数字,string,map,struct
map声明的案例:
var a map[string] string
var a map[string] int
var a map[int] string
var a map[string] map[string] string
注意:声明是不会分配内存的,初始化需要make,分配内存后才能赋值和使用。
map的例子:
package main import "fmt" func main() { // map 的声明 var a map[string]string // 在使用map前需要make 作用是给map分配数据空间 a = make(map[string]string, 10) // 10代表10个空间 a["age"] = "25" fmt.Println(a) fmt.Println(a["age"]) // key不能重复 value会被重新赋值 a["age"] = "24" fmt.Println(a) // key不重复的时候 value是可以重复的 a["age_two"] = "24" fmt.Println(a) }
上面例子的总结:
(1)使用map一定要make
(2)map的key是不能重复,如果重复了,则以最后这个key-value为准
(3)map的value是可以重复的
(4)map的key-value是无序的