「マップ要素のアドレスを取得できません」エラーについて理解する
Go では、式 odsMap[ を使用してマップ要素の値にアクセスします。 segRef].GetValue は、「odsMap[segRef] でポインター メソッドを呼び出すことができません」や「呼び出せません」などのエラーを引き起こす可能性があります。 odsMap[segRef] のアドレスを取得します。これは、新しいエントリの追加時にマップの内部構造が変更される可能性があるコンパイル時に発生します。
説明
odsMap[segRef] などのマップ インデックス式は、非ポインタ型。非ポインタ値のポインタ レシーバを必要とするメソッドを呼び出そうとすると、Go の仕様では非指针値のアドレスを取得することが禁止されており、結果的に遅延が生じます。
この問題を解決するには、次の点を考慮してください。回避策:マップにポインター値を保存する:
マップに非ポインター値を保存する代わりに、ポインター値を保存します。これにより、ポインタはすでにポインタであるため、インデックス式のアドレスを取得する必要がなくなります。
以上がGo マップ要素のアドレスを取得できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。