golang Map

##Map

  • 解释:是一种特殊的数据结构,一种元素对(pair)的无序集合,pair 的一个元素是 key,对应的另一个元 素是 value,所以这个结构也称为关联数组或字典。这是一种快速寻找值的理想结构:给定 key,对应的 value 可以迅速定位。

  • 概念:引用类型,需要先使用声明 示例:

    var	map1 map[keytype]valuetype 
    var	map1	map[string]int
    
  • 长度:不需要知道 也不需要声明长度 自动增长。

  • 未初始化的map值是nil

  • key组成 可以是任意类型 但数组、切片、结构体不能做key(若要用结构体做key 需提供Key()和Hash()方法,),这样可以通过结构体的域计算出唯一的数字或者字符串的 key; 指针和接口类型可以。

  • value value组成不做限制可以是任意类型也可以是空接口类型,但是需要先做一次类型断言。

  •  
  • map 传递给函数的代价很小:在 32 位机器上占 4 个字节,64 位机器上占 8 个字节,无论实际上存储了 多少数据。通过 key 在 map 中寻找值是很快的,比线性查找快得多,但是仍然比从数组和切片的索引中 直接读取要慢 100 倍;所以如果你很在乎性能的话还是建议用切片来解决问题

  • map 容量 和数组不同,map 可以根据新增的 key-value 对动态的伸缩,因此它不存在固定长度或者最大限制。但 是你也可以选择标明 map 的初始容量 capacity ,就像这样: make(map[keytype]valuetype, cap) 。例如:

    map2	:=	make(map[string]float,	100)
  • 判断map中是否含有键值对 组合使用:
if	 val1,	isPresent	:=	map1[key1];	isPresent	{
//	... 
    
}
  • 删除某个键值对
    直接	delete(map1,	key1)	就可以。
    如果	key1	不存在,该操作不会产生错误 map1 为map变量

多维map

mp := make(map[string]map[string]int64)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值