ホームページ >バックエンド開発 >Golang >Go でマップ フィールドにアクセスすると「Nil Pointer Dereference」エラーが発生するのはなぜですか?

Go でマップ フィールドにアクセスすると「Nil Pointer Dereference」エラーが発生するのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-05 19:21:10905ブラウズ

Why Do I Get a

マップ フィールドにアクセスする際のポインター逆参照エラー

構造体のフィールドにアクセスしようとすると、エラーが発生します:

invalid memory address or nil pointer dereference
gdreport/main.go:30 +0x1e6

Thisこのエラーは、マップが空のポインターで初期化され、その結果、マップの値が nil になるために発生します。 elements.

condition := map[string]*guardduty.Condition{}

この問題を解決するには、マップが有効なポインターで初期化されていることを確認してください。以下に例を示します。

condition := map[string]*guardduty.Condition{
    "id": &guardduty.Condition{
        Equals: strPtr,
    },
}

ポインターを使用して新しい条件を割り当てると、nil ポインター逆参照エラーが発生することなく、そのフィールドにアクセスできます。

以上がGo でマップ フィールドにアクセスすると「Nil Pointer Dereference」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。