``map``是Go语言中基础的数据结构,在日常的使用中经常被用到。但是它底层是如何实现的呢? # ``map``的整体结构图 Golang中``map``的底层实现是一个散列表,因此实现``map``的过程实际上就是实现散表的过程。在这个散列表中,主要出现的结构体有两个,一个叫``hmap``(``a header for a go map``),一个叫``bucket``。这两种结构的样子分别如下所示: hmap:  简单说明: + ``buf``是有缓冲的channel所特有的结构,用来存储缓存数据。是个循环链表 + ``sendx``和``recvx``用于记录``buf``这个循环链表中的~发送或者接收的~index + ``lock``是个互斥锁。 + ``recvq``和``sendq``分别是接收(<-cha...