Golang のポインターとマップ
Go では、マップは参照型です。つまり、マップは値の代わりに実際のデータの参照を保存します。自体。これにより、複数のオブジェクトが同じ基になるデータを指すことができるため、効率的なメモリ管理が可能になります。
ただし、Go で & 演算子を使用してマップへのポインターを取得しようとすると、エラーが発生する可能性があります。これは、Go のマップがすでに参照によって渡されているためです。 valueTo := &valueToSomeType などの代入を実行するときは、ポインターを作成するのではなく、マップの参照値を新しい変数に代入します。これは、元のマップと同じ基になるデータを事実上指します。
したがって、式 valueTo[number] は、マップへのポインターでは機能しません。代わりに、 を使用してマップ要素に直接アクセスする必要があります。演算子、valueTo[number].
要約すると、Go のマップはすでに参照型であるため、参照セマンティクスを実現するためにポインターを使用する必要はありません。マップ要素へのアクセスは、 を使用して直接行うことができます。マップは常に参照によって渡されるため、演算子。
以上がGo でマップへのポインターを取得できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。