ホームページ  >  記事  >  バックエンド開発  >  nil マップを読み取ろうとしたときに Go がパニックにならないのはなぜですか?

nil マップを読み取ろうとしたときに Go がパニックにならないのはなぜですか?

WBOY
WBOY転載
2024-02-06 10:00:041091ブラウズ

为什么 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マップから読み取ることはできますが、書き込むことはできません。言語仕様には次のように書かれています:

以上がnil マップを読み取ろうとしたときに Go がパニックにならないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。