go语言基础之map介绍和使用
1、map介绍
Go语言中的map(映射、字典)是一种内置的数据结构,它是一个无序的key—value对的集合,比如以身份证号作为唯一键来标识一个人的信息。
2、map示例
map格式为:
map[keyType]valueType
在一个map里所有的键都是唯一的,而且必须是支持==和!=操作符的类型,切片、函数以及包含切片的结构类型这些类型由于具有引用语义,不能作为映射的键,使用这些类型会造成编译错误:
dict := map[ []string ]int{} //err, invalid map key type []string
map值可以是任意类型,没有限制。map里所有键的数据类型必须是相同的,值也必须如何,但键和值的数据类型可以不相同。
注意:map是无序的,我们无法决定它的返回顺序,所以,每次打印结果的顺利有可能不同。
3、map的使用
示例2:
package main //必须有个main包 import "fmt" func main() { //定义一个变量, 类型为map[int]string var m1 map[int]string fmt.Println("m1 = ", m1) //对于map只有len,没有cap fmt.Println("len = ", len(m1)) //可以通过make创建 m2 := make(map[int]string) fmt.Println("m2 = ", m2) fmt.Println("len = ", len(m2)) //可以通过make创建,可以指定长度,只是指定了容量,但是里面却是一个数据也没有 m3 := make(map[int]string, 2) //指定容量为2(0 1 2),会自动扩冲 m3[1] = "mike" //元素的操作 m3[2] = "go" m3[3] = "c++" fmt.Println("m3 = ", m3) fmt.Println("len = ", len(m3)) //常用方法,推荐使用 //初始化 //键值是唯一的 m4 := map[int]string{1: "mike", 2: "go", 3: "c++"} fmt.Println("m4 = ", m4) }
执行结果:
m1 = map[] len = 0 m2 = map[] len = 0 m3 = map[1:mike 2:go 3:c++ 4:python] len = 4
//常用方法,推荐使用
m4 = map[1:mike 2:go 3:c++]