ホームページ >バックエンド開発 >Golang >Go Maps での「無効なメモリ アドレスまたは nil ポインター逆参照」エラーを解決する方法は?

Go Maps での「無効なメモリ アドレスまたは nil ポインター逆参照」エラーを解決する方法は?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-11 04:52:11395ブラウズ

How to Resolve

Go の無効なメモリ アドレスまたは nil ポインター逆参照です。map[string]*type

マップ内の値にアクセスしようとすると、 「無効なメモリアドレスまたは nil ポインタ逆参照」エラーが発生する場合があります。このエラーは、クエリ対象のキーがマップ内に存在しない場合、またはそのキーに格納されている値が nil ポインターである場合に発生します。

この特定のケースでは、コードは、 「コンディション」マップ。ただし、「条件」マップは、キーと値のペアのない空のマップとして初期化されます。したがって、「condition['id']」にアクセスしようとすると、キーが存在せず、nil ポインタにアクセスしようとします。これにより、「無効なメモリ アドレスまたは nil ポインター逆参照」エラーが発生します。

この問題を解決するには、アクセスを試行する前に、「条件」マップを初期化し、「id」キーの値を設定します。以下に例を示します。

// Initialize the condition map
condition = make(map[string]*guardduty.Condition)

// Set the value of the "id" key
condition["id"] = &guardduty.Condition{
    Equals: aws.StringSlice(findingId),
}

マップを初期化し、「id」キーの値を設定した後は、エラーが発生することなく安全にアクセスできるようになります。

以上がGo Maps での「無効なメモリ アドレスまたは nil ポインター逆参照」エラーを解決する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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