MST

星途 面试题库

面试题:Go语言中Map零值处理基础

在Go语言中,声明一个map变量但未初始化,即使用其零值,当尝试向这个零值map中插入键值对时会发生什么?请说明原因,并给出正确初始化map以便插入数据的方法。
29.2万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
  1. 尝试向零值map插入键值对的情况及原因
    • 当尝试向未初始化(零值)的map中插入键值对时,程序会发生panic,报错信息类似于panic: assignment to entry in nil map。这是因为零值的map实际上是nil,它没有分配内存空间来存储键值对。就好比你想在一个不存在的容器里放东西,这是不被允许的。
  2. 正确初始化map以便插入数据的方法
    • 使用make函数初始化
package main

import "fmt"

func main() {
    m := make(map[string]int)
    m["key1"] = 100
    fmt.Println(m)
}
  • 使用字面量初始化
package main

import "fmt"

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