go语言之map练习之(一):统计字母、数字等Unicode中不同的字符类别出现的次数

在GO语言中,一个Map就是一个哈希表的引用。但是Map元素是禁止作取地址操作的。因为map元素不是一个变量,map可能随着元素数量的增长而重新分配更大的内存空间,从而可能导致之前的地址无效。
对Map这种数据类型的理解有以下几点:
1、map中的key类型必须是可以做==运算操作的类型,浮点数作为一个KEY并不是一个好的主意,因为最坏的情况是可能出现的NaN和任何浮点数都不相等
2、用key作为索引下标来访问map将产生一个value。如果key在map中存在,那么将得到与key对应的value;如果key不存在,那么将得到value对应类型的零值。这种特性决定当你要判断在这个map中是否有key时,应该使用以下办法断言:

age, ok := ages[“bob”] if !ok { }//此时,key bob 并不存在于map中,在这个场景中,就会有两个值,一个是age == 0 ,一个则是ok==false 告诉我们bob这个key并不存在,我们就可以据此判断。
3、使用内置的delete函数可以删除元素:
delete(ages, “alice”) // remove element ages[“alice”]
4、map的遍历可以用:range,但是Map的迭代顺序是不确定的,并且不同的哈希函数实现可能导致不同的遍历顺序。在实践中,遍历的顺序是随机的,每一次遍历的顺序都不相同。这是故意的,每次都使用随机的遍历顺序可以强制要求程序不会依赖具体的哈希函数实现。
5、有时,我们可能需要一个map的key 是slices类型,但是slices并不能作==比较,不符合这个条件。这时我们可以通过两个步骤绕过这个限制。第一步&

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值