为什么Go在尝试从nil map读取时不会恐慌?

5vf7fwbs  于 2023-09-28  发布在  Go
关注(0)|答案(1)|浏览(97)

下面是代码,我希望它在访问mp["12"]时会死机,但它在那里工作正常

// You can edit this code!
// Click here and start typing.
package main

import "log"

func main() {
    var mp map[string]int = nil
    log.Println(mp["12"], "12") // works fine
    if mp == nil {
        panic("map is nil") // panic here
    }
}
5sxhfpxr

5sxhfpxr1#

你可以读取nil map,但不能写入。language spec说:
一个nilMap等价于一个空Map,除了不能添加任何元素。

相关问题