Golang は、効率が高く、構文がシンプルで学習しやすい非常に強力なプログラミング言語です。 Go の利点に関して言えば、主な理由の 1 つは、マップなどの組み込みデータ構造です。この記事では、Go マップの使用法について詳しく説明します。
Go マップは、キーと値のペアの順序付けされていないコレクションです。つまり、任意のタイプの値をキーと値として使用できます。マップ内のキーと値のペアは特定の順序ではなく、ハッシュ値の順序で格納されます。この機能については後で詳しく説明します。
Go でマップを作成するには、組み込み関数 make() を使用する必要があります。マップを作成し、それにキーと値のペアを追加する方法を見てみましょう。
m := make(map[string]int) // 创建一个字符串为键,int 类型为值的 map m["foo"] = 42 // 向 map 中添加键为 "foo" 的值为 42 fmt.Println(m["foo"]) // 输出 map 中键为 "foo" 的值,输出 42
この例では、文字列キーと int 値を含むマップを作成し、キー「foo」を持つ値 42 をそれに追加します。コードの最後の行は、キー「foo」を持つマップ内の値を出力するため、出力として 42 が得られます。
マップの作成時に初期値を指定する別の方法もあります。次のように試してください:
m := map[string]int { "foo": 42, "bar": 24, }
この例では、2 つのキーと値のペアを含むマップを作成します。ここで、キー「foo」の値は 42、キー「bar」の値は 24 です。 。
Go でマップの値にアクセスするには、次のメソッドを使用できます。
val, ok := m["foo"] fmt.Println(val, ok) // 输出 42, true
ここで、val 変数はキーを格納します。 "foo" としてのマップ の値、および ok 変数は、マップ内にキー "foo" を持つエントリがあるかどうかを示します。
マップ内にそのようなエントリがない場合 (つまり、「foo」がキーではない場合)、ok 変数は false になります。したがって、マップ内の値が正常にアクセスされたかどうかを確認したい場合は、ok 変数の値を確認できます。
Go でのマップの値の反復処理は簡単で、for-range ループを使用できます。
m := map[string]int { "foo": 42, "bar": 24, } for k, v := range m { fmt.Printf("key: %s, value: %d ", k, v) } // 输出: // key: foo, value: 42 // key: bar, value: 24
この例では、for-range ループを使用してマップ m 内のキーと値を反復し、各反復でそれらを出力します。 for ループの構文は、マップのキーだけでなく、マップ内の値も反復することに注意してください。
Go マップの値の削除も非常に簡単で、delete() 関数を使用するだけです。
m := map[string]int { "foo": 42, "bar": 24, } delete(m, "foo") // 删除 map 中键为 "foo" 的键值对
この例では、delete() 関数を使用して、マップ内のキー「foo」を持つキーと値のペアを削除します。削除後、マップにはキー「foo」を持つエントリは含まれなくなります。
Go では、マップにはサイズと容量のプロパティがあります。ただし、他の言語のデータ構造とは異なり、Go のマップには明示的な容量属性がありません。したがって、マップのサイズを知りたい場合は、以下に示すように組み込み関数 len() を使用する必要があります:
m := map[string]int { "foo": 42, "bar": 24, } fmt.Println(len(m)) // 输出长度为 2
ここでは、len() 関数を使用してマップの長さ m を出力します。その出力は 2 です。
Map は非常に強力なデータ構造ですが、使用には注意が必要です。マップは動的ハッシュ テーブルであるため、多くの開発者は他のデータ構造よりも高速であると考えています。ただし、実際の使用では、マップのパフォーマンスがメモリ管理やハッシュの競合によって影響を受け、コードが遅くなる可能性があります。
Go マップの使用に関するいくつかの提案を次に示します:
それにもかかわらず、map は非常に便利で柔軟なデータ構造です。賢明な方法で使用すれば、Go コードにとって理想的なものになります。
この記事では、Golang でのマップの使用法について学びました。マップ内のエントリを作成、アクセス、反復、削除する方法と、マップのサイズと容量を表示する方法を学習しました。同時に、Go でこのデータ構造をより効果的に使用できるように、マップの使用に関するいくつかの提案も提供します。
以上がマップゴーランの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。