MENU

【3分で理解する】golangのmapからkeyを取得する方法

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

今回はgolangのmapからkeyのみを取得する方法について解説していきます。

golangのmapについては既に以下の記事で解説しているので、基本的な使い方や注意点を知りたい方は一度こちらを目を通してからの方が理解が深まります。

あわせて読みたい
【3分で理解する】golangのmapとは 使い方、注意点について解説 今回はgolangにおけるmapについて解説していきます。 【mapとは】 golangのmapはキーと値を保持するために使う、データ構造の一つとなっています。 mapの定義は以下のよ...
目次

mapからkeyを取得する方法

それではmapからkeyを取得する方法について解説していきます。

mapからkeyを一覧で取得する

まずgolangにはmapからkeyを取得することができる関数はありません。そのため独自に実装してmapからkeyを抜いてスライスか配列に格納してあげる必要があります。

実際のコードを見てみましょう。

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

	var keys []string
	for key := range a {
		keys = append(keys, key)
	}

	fmt.Println(keys)
}

まずは変数keyがstring、valueがintのmapをaとして生成します。次に最終的にmapのkeyを格納するスライスkeysを生成します。

次にfor range文を使ってmap aの要素分回します。この際にmapのkeyのみをkeyという変数に格納していきます。

for文の中で先ほど生成したスライスkeysにappend関数を使ってkeyを追加していきます。append関数については以下の記事でまとめています。

あわせて読みたい
【3分で理解する】golangのスライスに要素を追加するappend関数の使い方 遅さには注意 今回はgolangにおけるappend関数の使い方や注意点について解説していきます。 【append関数とは】 append関数とはスライスに要素を追加する際に用いる関数です。 スライ...

この実行結果は[pen eraser scissors]となります。

keyを確認するだけなら

mapのkeyを取得した後に何かしらの処理に用いる場合はスライスを作ってfor rangeで格納する必要がありますが、keyの内容を確認したいだけであればそこまでは不要です。

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

	for key := range a {
		fmt.Println(key)
	}
}

スライスを生成せずにfor文の中でPrintln()を仕込んでおけばkeyの内容を出力するので、確認することができます。

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

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

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

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

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