我是靠谱客的博主 淡然白开水,最近开发中收集的这篇文章主要介绍golang学习之路-24map映射,python中字典,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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中字典所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部