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

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

// A
A 处只声明了map m ,并没有分配内存空间未初始化的map,写入会panic,

因此需要将 var m map[string]int 改为 m := make(map[string]int)

// B
key 为 b 的元素不存在的时候,v 会返回值类型对应的零值,类型为int因此v为0。类型int != nil 是不能通过编译的类型不匹配

因此需要v != nil 改为 v != 0

package main

import (
    "fmt"
)

func main() {
    m := make(map[string]int) //A
    m["a"] = 1
    if v := m["b"]; v != 0 { //B
        fmt.Println(v)
    }
}

在线编译