ホームページ  >  記事  >  バックエンド開発  >  Golang マップの用途は何ですか?

Golang マップの用途は何ですか?

(*-*)浩
(*-*)浩オリジナル
2019-12-09 14:03:482823ブラウズ

Golang マップの用途は何ですか?

マップ データ型は多くの言語で使用でき、キーと値の形式のハッシュ テーブルであるため、キーと値を 1 つずつマッピングできます。高速な検索、追加、削除などの操作が可能です。 Go 言語も例外ではなく、マップ データ構造タイプを提供します。

# (推奨学習: Go )

Golang、マップは参照型です。ポインターのスライスと同様に、nil を指します。次のコードで宣言された後。これは golang の公式ドキュメントにも説明されているので、宣言直後は絶対に使用しないでください。最初は次のような間違いを犯す可能性があります。これに書き込むと null ポインターへの参照になるため、問題が発生します。

したがって、必ず make 関数を使用してメモリを割り当て、初期化する必要があります。

var m map[string]string
m["result"] = "result"

golang のマップは同時実行安全ではありません

普段は地図を使っていてとても楽しいのですが、ある日突然トラフィックが増えて、知らないうちにプログラムがハングアップしてしまいます。何が起こったのか分かりませんが、以前は正常に動作していました。したがって、アサーションのチェック、同時実行の安全性の考慮など、いくつかの良い習慣を最初に身に付ける必要があります。

おそらく sync.Map を試してみてください。

golang の sync.Map は同時実行安全です。実際、これは sync パッケージ内の Map という名前の golang でカスタマイズされた構造です。構造プロトタイプは次のとおりです。

m := make(map[string]string)
m["result"] = "result"

Mutex があることがわかり、同時実行の安全性を確保するためにロック メカニズムが使用されていることは明らかです。このパッケージのマップは、ストア、ロード、削除、範囲などの操作を提供します。また、同期パッケージ内のマップはそのまま使用できます。つまり、次のように宣言後に直接使用できます。

以上がGolang マップの用途は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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