Go语言学习——map
2018-03-02 15:48
441 查看
1、Go语言中的map(映射、字典)是一种内置的数据结构,它是一个无序的key—value对的集合。
2、map的创建
3、map的初始化
4、赋值
5、遍历
6、删除
2、map的创建
var data map[int]string //只是声明一个map,没有初始化, 此为空(nil)map fmt.Println(data == nil) //true //data[1] = "apple" //err, panic: assignment to entry in nil map //data2, data3的创建方法是等价的 data2 := map[int]string{} data3 := make(map[int]string) fmt.Println(data2, data3) //map[] map[] data4 := make(map[int]string, 10) //第2个参数指定容量 fmt.Println(data4) //map[]
3、map的初始化
3.1、定义同时初始化
var data map[int]string = map[int]string{1: "apple", 2: "banana"} fmt.Println(data) //map[1:apple 2:banana]
3.2、自动推导类型 :=
data2 := map[int]string{1: "apple", 2: "banana"} fmt.Println(data2)
4、赋值
data := map[int]string{1: "apple", 2: "banana"} data[1] = "xxx" //修改 data[3] = "pear" //追加, go底层会自动为map分配空间 fmt.Println(data) //map[1:xxx 2:banana 3: pear] data2 := make(map[int]string 4000 , 10) //创建map data2[0] = "aaa" data2[1] = "bbb" fmt.Println(data2) //map[0:aaa 1:bbb]
5、遍历
data := map[int]string{1: "apple", 2: "banana"} //迭代遍历1,第一个返回值是key,第二个返回值是value for k, v := range data { fmt.Printf("%d ----> %s\n", k, v) //1 ----> apple //2 ----> banana } //迭代遍历2,第一个返回值是key,第二个返回值是value(可省略) for k := range data { fmt.Printf("%d ----> %s\n", k, data[k]) //1 ----> apple //2 ----> banana } //判断某个key所对应的value是否存在, 第一个返回值是value(如果存在的话) value, ok := data[1] fmt.Println("value = ", value, ", ok = ", ok) //value = apple , ok = true value2, ok2 := data[3] fmt.Println("value2 = ", value2, ", ok2 = ", ok2) //value2 = , ok2 = false
6、删除
data := map[int]string{1: "apple", 2: "banana", 3: "pear"} //迭代遍历1,第一个返回值是key,第二个返回值是value for k, v := range data { fmt.Printf("%d ----> %s\n", k, v) //1 ----> apple //2 ----> banana //3 ----> pear } delete(data, 2) //删除key值为2的map for k, v := range data { fmt.Printf("%d ----> %s\n", k, v) //1 ----> apple //3 ----> pear }
相关文章推荐
- Go语言学习笔记 --- map
- Go语言学习笔记(四) [array、slice、map]
- Go语言学习之map (The way to go)
- Go语言学习笔记十三: Map集合
- Go语言学习三:Go基础(iota,array,slice,map,make,new)
- GO语言学习笔记2(指针数组MAP)
- go语言学习-数组, slice和map
- Go语言学习笔记十三: Map集合
- Go语言学习笔记(四) [array、slice、map]
- Go语言学习笔记(三)数组 & 切片 & map
- Go语言学习笔记(四) [array、slice、map]
- Go语言学习笔记之数组、数组切片和map
- Go语言学习九:Map(集合)、递归函数、类型转换
- Go语言学习(二):array、slices和map
- Go语言学习笔记 -- array、slice和map
- [Go语言]从Docker源码学习Go——if语句和map结构
- GO语言学习备注
- Go语言学习
- Go语言学习笔记九: 指针