Go中的Map
2026-02-01
Go Map 的底层实现是一个哈希表,在运行时表现为一个指向 hmap 结构体的指针,hamp 中记录了桶数组指针 buckets、溢出桶指针以及元素个数等字段。每个桶是一个 bmap 结构体,能储存8个键值对和8个 tophash,并有指向下一个溢出桶的指针 overflow。为了内存紧凑,bmap 中采用的是先存8个键再存8个值的存储方式。
581 字
|
3 分钟
defer的执行顺序和常用场景
2025-12-03
defer 执行顺序与调用顺序相反,类似于栈的先进后出(LIFO),跟在 defer 后面的函数会被延迟执行,直到包含该 defer 语句的函数执行完毕,defer 后面的函数才会被延迟执行,不论包含该 defer 语句的函数是通过 return 正常结束,还是由于 panic 导致的异常退出。
181 字
|
1 分钟