MENU

【3分で理解する】golangのmapとは 使い方、注意点について解説

本ページではアフィリエイトリンク(PR)が含まれています

今回はgolangにおけるmapについて解説していきます。

目次

mapとは

golangのmapはキーと値を保持するために使う、データ構造の一つとなっています。

mapの定義は以下のように宣言します。

	a := map[string]int{"pen": 200, "eraser": 100}
	fmt.Println(a)

map[キーのデータ型]値のデータ型{要素}のように定義します。今回はキーがstring、値はintとなるマップにそれぞれpenとeraserの要素を入れています。

Println()の結果はmap[eraser:100 pen:200]となります。

また以下のようにa[“pen”]とするとkeyがpenの値を取得することもできます。

	a := map[string]int{"pen": 200, "eraser": 100}
	fmt.Println(a["pen"])

こちらのPrintln()は200と出力されます。

mapの値の変更

次にmapの値を変更する場合です。

今回はkeyがpenの値を200→500に変更します。

	a := map[string]int{"pen": 200, "eraser": 100}
	a["pen"] = 500
	fmt.Println(a)

こちらのPrintln()は500と出力されます。

mapへの要素の追加

次にmapへ要素を追加する方法です。

以下のように新たにkeyを設定して値を代入してあげます。

	a := map[string]int{"pen": 200, "eraser": 100}
	a["scissors"] = 300
	fmt.Println(a)

Println()はmap[eraser:100 pen:200 scissors:300]を出力されます。

mapに要素が存在するか確認

次にmapに特定の要素が存在するかどうか確認する方法です。

	a := map[string]int{"pen": 200, "eraser": 100}
	v, check := a["pen"]
	fmt.Println(v, check)

keyがpenの値をvとcheckという二つの変数に格納します。

この実行結果は200 trueとなります。keyがpenの値が入っているということをtrueとして返してくれます。

	a := map[string]int{"pen": 200, "eraser": 100}
	v, check := a["no"]
	fmt.Println(v, check)

値がないものは0 falseと出力され、値が入っていないため0、そしてfalseが入ります。

mapの初期化

以前スライスの初期化で解説したものと同様にmapもmake()を使って初期化することができます。

あわせて読みたい
【3分で理解する】golangのスライスのmakeとcapについて 使い方、注意点について解説 前回、golangのスライスについて解説しました。 https://cityofnogales.net/go-slice/ 今回はそのスライスの中で用いられるmakeとcapについて解説していきます。 【スラ...

以下のようにkeyがstring、vakueがintのmapをmake()関数に引数で渡して初期化をします。

	a := make(map[string]int)
	a["pen"] = 1000
	fmt.Println(a)

これの実行結果はmap[pen:1000]をkeyがpen、valueが1000がmapに入っていることが分かります。

make()を使わずにvarでmapを定義する際は注意が必要です。

	var a map[string]int
	a["pen"] = 1000
	fmt.Println(a)

これの実行結果はpanicを起こし、エラーとなります。mapの宣言は出来ていますが、メモリ上にmapがないため、そこに値を入れようとしたときにpanicを起こすので、注意が必要です。

golangをもっと詳しくなりたい方に

golang学習のために筆者が実際に受講したUdemy教材をまとめています。

あわせて読みたい
【入門】golangの学習におすすめのUdemy教材5選 これから業務でgolangを使うことになった方、これからgolangを使ってキャリアを歩んでいきたいという方でどのように学習していこうか悩んでいる方もいるかと思います。 ...

golang学習のために筆者が実際に読んでおすすめしたい本をまとめています。

あわせて読みたい
【入門】golangの学習におすすめの本/書籍7選 これから業務でgolangを使うことになった方、これからgolangを使ってキャリアを歩んでいきたいという方でどのように学習していこうか悩んでいる方もいるかと思います。 ...
タメになったらシェアお願いします!
  • URLをコピーしました!
  • URLをコピーしました!
目次