概述
package main import "fmt" func main() { //map is 一个特殊的数据结构,一种元素对 (pair)的无序集合 //pair对应一个key(索引)和一个value(值) // 所以这个结构也称为关联数组或者字典 //这是一种能够快速寻找值的理想结构,给定key就可以迅速找到其对应的value //Python中称为字典、java Hashtable //1、map是引用类型 //2、注意:在声明时map不需要知道长度,因为map是可以动态增长的 // 未初始化的map的值是nil,使用len()可以获取map中pair的数目 //var map_1 map[int]int //var mapname map[keytype]valuetype var mapLit map[string]int //var mapCreated map [string]float32 var mapAssigned map[string]int mapLit = map[string]int{"one":1,"two":2} //4、可以用make()构造map,不能用new构造map // 如果错误的使用new()分配了一个引用对象, // 会获得一个空引用的指针,相当于声明了一个未初始化的变量并且取了它的地址 mapCreated:=make(map[string]float32) mapAssigned = mapLit mapCreated["key1"]=4.5 mapCreated["key2"]=3.1415926 mapAssigned["two"]=4 fmt.Printf("Map literal at "one" is :%dn",mapLit["one"]) fmt.Printf("Map created at "key2" is :%fn",mapCreated["key2"]) fmt.Printf("Map ass at "two" is :%dn",mapAssigned["two"]) fmt.Printf("Map literal at "ten" is :%dn",mapLit["ten"]) //map容量capcity map2:=make(map[string]int,100) //当map增长到容量上线到容量上限到是哦呼, //如果再增加新的key,value,map大小会自动加一,所以处于性能到考虑 //对于大到map和快速增长到map,即使大概知道容量,也最好先标明 //example //将音阶和对应到音频映射起来 noteFrequency:= map[string]float32{ "C0":16.35,"D0":18.35,"E0":20.60,"F0":21.83, "G0":24.50,"A0":27.50,"B0":30.87,"A4":440} //用切片作为map的值 //适应场景:一个key对应多个值的情况 mp1:=make(map[int][]int) mp2:=make(map[int]*[]int) /* 场景如下: 例如,当我们要处理 unix 机器上的所有进程,以父进程(pid 为整形) 作为 key,所有的子进程(以所有子进程的 pid 组成的切片)作为 value。 通过将 value 定义为 []int 类型或者其他类型的切片 就可以优雅的解决这个问题 */ }
最后
以上就是淡然白开水为你收集整理的golang学习之路-24map映射,python中字典的全部内容,希望文章能够帮你解决golang学习之路-24map映射,python中字典所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复