在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Go语言中 map 是一种特殊的数据结构,一种元素对(pair)的无序集合,pair 对应一个 key(索引)和一个 value(值),所以这个结构也称为关联数组或字典,这是一种能够快速寻找值的理想结构,给定 key,就可以迅速找到对应的 value。 map 概念map 是引用类型,可以使用如下方式声明: var mapname map[keytype]valuetype 其中:
示例 package main import "fmt" func main() { var mapLst map[string]int mapLst = map[string]int{"one": 1, "two": 2} //mapAssign 是 mapLst 的引用,对 mapAssign 的修改也会影响到 mapLst 的值 mapAssign := mapLst //可以使用 make(),但不能使用 new() 来构造 map,如果错误的使用 new() 分配了一个引用对象,会获得一个空引用的指针,相当于声明了一个未初始化的变量并且取了它的地址 mapCreated := make(map[string]float32) mapCreated["key1"] = 2.5 mapCreated["key2"] = 3.14159 mapCreated["key3"] = 3 fmt.Printf("map literal at \"one\" is :%d \n", mapLst["one"]) fmt.Printf("map assign at \"two\" is :%d \n", mapAssign["two"]) fmt.Printf("map created at \"key2\" is :%f \n", mapCreated["key2"]) } 上面代码中的 mapCreated 的创建方式 map 容量和数组不同,map 可以根据新增的 key-value 动态的伸缩,因此它不存在固定长度或者最大限制,但是也可以选择标明 map 的初始容量 capacity,格式如下: make(map[keytype]valuetype, cap) 例如: map2 := make(map[string]float, 100) 当 map 增长到容量上限的时候,如果再增加新的 key-value,map 的大小会自动加 1,所以出于性能的考虑,对于大的 map 或者会快速扩张的 map,即使只是大概知道容量,也最好先标明。 |
请发表评论