1.5.5 map高级使用技巧
一、高级使用技巧
Go语言中,
map的主要作用是提供一个快速的查找、插入、删除的结构,同事具备与存储体量无关的、空间复杂度为O(1)的性能,并且支持键key的唯一性对于Go语言的
map数据类型来说,首先它是可变的,也就是可以随时进行修改;其次,它不是线程安全的
二、多维map的声明和遍历
map的声明和遍历多维
map的声明格式如下:var m map[]map[KeyType_2]...map[KeyType_n]valueType备注:
KeyType_1:等等表示map的键key类型,一定是可以比较的ValueType:可以是任意类型,甚至包括其他内联的mapmap在Go语言中属于索引类型,也就是作为方法的形参或返回类型时,传递的也是这个索引的地址,不是map的本体其次,这个
map在声明的时候是nil,如果没有初始化,则默认是nil对于
nil的map,可以对其任意位置随意取值,结果都是(nil, err),但如果对其设置一个新值,则会报错,需要初始化后才可以赋值初始化方法:
直接初始化
m := make(map[string]int)备注:简单举个初始化例子
定义时候直接赋值
var m map[string]int = map[string]int{"barry":12, "tont":10}初始化一个空
mapm = map[string]int{}
示例
func map1() { m := map[string]map[string]string{} m["programmer"] = map[string]string{} m["programmer"]["name"] = "snow" m["manager"] = map[string]string{} m["manager"]["goodAt"] = "Go" fmt.Println(m["programmer"]["name"]) fmt.Println(m) for key, value := range m { for k, v := range value { fmt.Println("K:", k, "V:", v) } fmt.Println("Key:", key, "Value:", value) } }结果:
snow map[manager:map[goodAt:Go] programmer:map[name:snow]] K: name V: snow Key: programmer Value: map[name:snow] K: goodAt V: Go Key: manager Value: map[goodAt:Go]
三、map多层嵌套的使用及遍历方法
map多层嵌套的使用及遍历方法可以使用
for...range语句来处理多层嵌套,示例如下结果:
Last updated