今回はgolangのmapからkeyのみを取得する方法について解説していきます。
golangの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を使ってキャリアを歩んでいきたいという方でどのように学習していこうか悩んでいる方もいるかと思います。 ...