map使用

题目:

下面代码中 A B 两处应该怎么修改才能顺利编译?

1
2
3
4
5
6
7
func main() {
var m map[string]int //A
m["a"] = 1
if v := m["b"]; v != nil { //B
fmt.Println(v)
}
}

答案:

正确的代码如下:

1
2
3
4
5
6
7
func main() {
m := make(map[string]int)// A
m["a"] = 1
if v, ok := m["b"]; !ok { //B
fmt.Println(v)
}
}

A 处,只声明了map m ,并没有分配内存空间,不能直接赋值,需要使用 make(),都提倡使用 make() 或者字面量的方式直接初始化 map。

B 处,v,k := m["b"] 当 key 为 b 的元素不存在的时候,v 会返回值类型对应的零值,k 返回 false。


map使用
http://example.com/2023/07/04/Go每日一题/map使用/
作者
Feng Tao
发布于
2023年7月4日
更新于
2023年7月4日
许可协议