从map中取值

题目:

下面这段代码输出什么?

1
2
3
4
5
6
7
8
9
type person struct {  
name string
}

func main() {
var m map[person]int
p := person{"mike"}
fmt.Println(m[p])
}
  • A.0
  • B.1
  • C.Compilation error

答案与解析

​ A。

  1. 未初始化的 map 为 nil map
    1. 往值为 nil 的 map 添加值,会触发 panic
    2. 读取值为 nil 的 map,不会报错
    3. 删除值为 nil 的 map,不会报错
  2. 已经初始化,没有任何元素的 map 为 空map,对 空map 增删改查不会报错

从map中取值
http://example.com/2023/09/27/Go每日一题/从map中取值/
作者
Feng Tao
发布于
2023年9月27日
更新于
2023年9月27日
许可协议