Go のマップからキーのスライスを取得する
Jay Singh
2023年1月30日
Golang Map は、順序付けされていないキーと値のペアのコレクションです。キーを使用して取得、更新、または削除された値をすばやく検索できるため、広く使用されています。
マップの値はキーのように一意ではなく、int、float64、rune、text、pointer、reference type、maptype などの任意のタイプにすることができます。
このチュートリアルでは、Go のマップからキーのスライスを取得します。
range
と append()
を使用して、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]