go初学篇(四)之Map

前言:

上一篇着重说了数组与切片,这一篇我们就来说说说Map映射,对于Map很多语言都有,它是将值与键关联起来的集合,一般都是用相应的键去检索值,虽然我们可以和数组和切片一样去迭代它,但是它迭代返回的结果是无序的,因为Map是通过hash表来实现的,所以使用Map需要注意以下几点:

map是无序的,每次打印的结果都不一样,只能通过键key获取

map的长度不是确定的,也是一种引用类型

map同样使用len函数,可以返回其中key的数量

map的key可以是所有可以比较的类型,布尔型,整形都可以

1.使用make()创建map

不仅可以用make来创建,一般用map关键字也可以,而且如果不初始化map,就会创建一个nil map,就不会存放键值对,下面举个代码实例

 

 

 2.使用delete()删除Map

delete(map, key) 函数用于删除Map集合的元素,删除不返回任何值。

直接看代码实例:

 

 3.ok-idiom

怎么说吧,我们一般在Map中都是通过key来获取对应的值,但是当key不存在时,就会得到对应空值的默认类型,string就是空字符串,int就是0,但是程序也不会报错,这样就等于浪费了时间,所以ok-idiom就是用来检测key与值是否存在的

一般格式为

value,ok := map[key]

代码实例

 

 4.引用类型Map

对比上一篇的切片,Map也是引用类型,多个Map也许会对应一个数据结构,影响一个就会影响其他

代码实例

 

 上面两次输出的都是peopleSui,第二次是由于改变了拥有相同数据结构的newPeopleSui,所以对应的值就改变了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值