← 返回首页

Go中 Map 中删除一个 key,它的内存会释放么?

不会。

delete一个key,并不会立刻释放或收缩Map占用的内存。

具体来说,delete(m, key) 这个操作,只是把key和value对应的内存块标记为"空闲",让它们的内容可以被后续的垃圾回收(GC)处理掉。

但是,Map底层为了存储这些键值对而分配的"桶"(buckets)数组,它的规模是不会缩小的。只有在置空这个map的时候,整个map的空间才会被垃圾回后释放