Golang源码分析 - channel通道 Channel 本文是Go源码分析系列的第四篇,接着记录本人深入学习Go的过程。不得不说Go的源码还是值得一读的,当然最好带着目的去阅读源码,可跳过一些不重要的片段,这样才能高效到达自己的目的。阅读的过程中难免遇到不懂的,没事,善于利用 搜索引擎,但切记 不可盲目 复制。 整体下来阅读Go源码给我最直观的感受有几点 : 指针无处不在!不过好在我是C++转Go的,这倒是没什么大问题。可能后面会 2022-04-11 Golang Golang Golang源码
Golang源码分析 - map哈希表 Map结构体 Go中 map 底层实现数据结构是 哈希表 而非 C++中的 红黑树,这样设计的目的是为了加快查找过程,而如果使用红黑树的话由于在插入和删除的过程中需要对树结构进行旋转而导致性能降低,而且查找的过程中需要遍历树,这相对于哈希表实现的map来说是很慢的,不过基于哈希表实现的map也有一个缺点就是占用内存高。 哈希表实现的map重点是 哈希函数 的选择,哈希函数映射的结果一定要尽可能 2022-04-08 Golang Golang Golang源码
Golang源码分析 - slice切片 Go语言中的切片是一个特殊的数据结构,和C++的 std::vector 一样(但又不完全一样)。 2022-04-07 Golang Golang Golang源码
Golang源码分析 - string字符串 Go中的string是不可变的(只读),因此无法修改,只能使用 len() 获取长度,无法使用 cap() 获取容量,与slice有一定的相似之处,实际上两者底层都使用了一个数组保存所有的数据。 2022-04-06 Golang Golang Golang源码