Go のマップからキーのスライスを取得する

Jay Singh 2023年1月30日 Go Go Map
  1. rangeappend() を使用して、Go のマップからキーのスライスを取得する
  2. MapKeys 関数を使用して、Go のマップからキーのスライスを取得する
Go のマップからキーのスライスを取得する

Golang Map は、順序付けされていないキーと値のペアのコレクションです。キーを使用して取得、更新、または削除された値をすばやく検索できるため、広く使用されています。

マップの値はキーのように一意ではなく、int、float64、rune、text、pointer、reference type、maptype などの任意のタイプにすることができます。

このチュートリアルでは、Go のマップからキーのスライスを取得します。

rangeappend() を使用して、Go のマップからキーのスライスを取得する

この例では、文字列キーと文字列値のマップから始めます。次に、別の文字列スライスでキーだけを取得する方法を示します。

range を使用してマップからキーを取得し、append() を使用してそれらを空のスライスにアタッチします。

package main

import "fmt"

func main() {
    m := map[string]string{
        "animal": "Cat",
        "Car":    "GMC",
        "Metal":  "Gold",
    }

    keys := []string{}
    for key, _ := range m {
        keys = append(keys, key)
    }

    fmt.Println("KEYS SLICE -", keys)
}

出力:

KEYS SLICE - [animal Car Metal]

MapKeys 関数を使用して、Go のマップからキーのスライスを取得する

タイプ []Value のキーの配列を取得するには、reflect パッケージから MapKeys メソッドを使用します。

package main

import (
    "fmt"
    "reflect"
)

func main() {
    a := map[string]string{
        "animal": "Cat",
        "Car":    "GMC",
        "Metal":  "Gold",
    }

    keys := reflect.ValueOf(a).MapKeys()

    fmt.Println("Keys Slice -", keys)
}

出力:

Keys Slice - [animal Car Metal]
チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe

関連記事 - Go Map