Golang Map 和字符串
极客时间《Go 语言从入门到实践》学习笔记 03
10 | Map 声明、元素访问及遍历
在访问的 Key 不存在时,返回的是 Map 中 Value 类型的默认值,如果是 int ,就是 0;如果是 String ,就是空字符串 ""。
看多了 make 函数,感觉像是在看 C 语言的 malloc
Map 底层使用 Hash 表来存储,无序。
参考 @碧雪天虹 的代码,实现了一下按 key 排序,其实按照 value 排序也没有问题。
看到了其他留言里面对 value 排序的代码,感觉略显繁琐,应该有更好的办法。不知道 go 语言的 map 类型有没有类似于 findByValue 类的操作。
11 | Map 与工厂模式,在 Go 语言中实现 Set
对于判断某个值在 Set 中是否存在的代码做了一点小的重构:
有同学在留言里面提到 mySet[1]=false 会有误解,另外还有对于 set 中元素唯一性的疑惑,我觉得可能是没有理解如何使用 map 来实现 set。
其实 map 的 key 就是 set 的值 value,如果有值,那么就是 map[value] = true。
看到有同学似乎已经在留言里面问到关于网络编程(爬虫?)的问题了,我真是来的太晚了。
另外,似乎 Go 语言经过最近两年的发展,似乎要支持泛型了。
12 | 字符串
顺着留言,去阮一峰老师那边重温了一下字符集编码的内容,之前也琢磨过,但是很久不用,已经生疏了。
前两天在 Redis 里面看到了 itoa,怎么也猜不出来含义,原来答案在这里。
有一个地方不太理解,我 rune 中文之后,输出的是一个五位数?可能是显示格式的问题
没有去看 strings 和 strconv 的官方文档,等以后用到的时候再查。
版权声明: 本文为 InfoQ 作者【escray】的原创文章。
原文链接:【http://xie.infoq.cn/article/7213c2680cb4bddfdc35c729e】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论