卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章64334本站已运行4115

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

为什么 go 在尝试读取 nil 映射时不会恐慌?

问题内容

这是代码,我预计访问 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
    }
}

正确答案


您可以从 nil 映射中读取,但无法写入。语言规范说:

卓越飞翔博客
上一篇: 附加到指针切片
下一篇: 当消费者队列尚不存在时,如果将 RabbitMQ 消息发布到具有特定路由键的交换器,是否会丢失?
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏