面试题答案
一键面试- 尝试向零值map插入键值对的情况及原因:
- 当尝试向未初始化(零值)的map中插入键值对时,程序会发生
panic
,报错信息类似于panic: assignment to entry in nil map
。这是因为零值的map实际上是nil
,它没有分配内存空间来存储键值对。就好比你想在一个不存在的容器里放东西,这是不被允许的。
- 当尝试向未初始化(零值)的map中插入键值对时,程序会发生
- 正确初始化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)
}