MST

星途 面试题库

面试题:Go语言中如何正确删除Map中的键值对

在Go语言中,给定一个 `map[string]int` 类型的变量 `m`,请编写代码删除键为 "key1" 的键值对,并说明删除操作后,该键值对占用的内存是否会立即释放,为什么。
22.8万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import "fmt"

func main() {
    m := map[string]int{"key1": 1, "key2": 2}
    delete(m, "key1")
    fmt.Println(m)
}

删除操作后,该键值对占用的内存不会立即释放。因为Go语言的垃圾回收机制是自动管理内存的,只有当垃圾回收器运行并检测到这块内存不再被使用时,才会回收该内存。delete 操作只是从 map 中移除了键值对的引用,使得这块内存可以被垃圾回收器标记为可回收,但并不会立即释放。