golang int 转string_golang系列——高级语法之map

d0b9e37685bd8c4569d3663d2e49af9c.png

由于近期个人原因导致更新停滞了,非常抱歉。另外后台数据显示前几篇文章的完整阅读率只有30%~40%,所以此后尽量压缩篇幅到之前的1/3,减少大家的阅读压力。

本篇讲解golang语言中的map数据结构,即由键值对构成的无序数据。map数据结构在python、java等多种语言中实现,其主要特点是能通过键(key)快速查询值(value)。

map的常见操作有:声明、赋值、添加、删除、查询、遍历、清空等

varstuMapmap

map的常见方法有:键值存在性、排序、嵌套

data

map的基本操作就是这样,这里有2个地方需要注意:

第一、map为引用类型,传递参数的时候传递引用,而不是值传递,所以修改后外部是会改变的。

第二、map的内部存储结构是可能重新组织的,比如大量数据需要优化树状结构时会引起map存储结构改变。也就是说对某个具体的数据取地址是可能改变的,之后使用按址查询的时候可能查询错误,所以不能直接对map的元素取地址

sync.Map

在go的并发编程中,不可避免的要考虑线程安全性问题;针对map数据结构,golang提供sync.Map保证线程安全。具体的实现原理这里先不讲解,目前主要讲解用法。如下所示,使用sync.Map类型保证线程安全,所以在并发中使用map数据类型时应选择sync.Map。

package 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值