LoginSignup
0
0

More than 1 year has passed since last update.

Golang初心者向け!mapの基礎から応用

Last updated at Posted at 2023-02-13

はじめに

Go言語のMapは、非常に便利なデータ構造であり、多くのアプリケーションに使われることがあります。この記事では、GolangのMapの基礎的な使い方と応用をまとめます。

Mapの基礎的な使い方

Mapを使うには、最初に make() 関数を使って新しいMapを作成する必要があります。新しいMapは以下のように作成できます。

//make(map[key名]value)の型名
intMap := make(map[string]int) //valueがint型
stringMap := make(map[string]string) //valueがstring型

Mapの要素を追加するには、[key] = value の形式を使用します。以下のように追加することができます。

m["foo"] = 10

Mapから値を取得するには、[key] の形式を使用します。以下のように取得することができます。

value := m["foo"]

Mapのネスト

Mapを使うと、複雑なデータ構造を簡単に作ることができます。Mapをネストさせることで、複雑な構造を作成することができます。たとえば、以下のようにネストさせることができます。

//map[int]stringをvalueとしたMap
m := make(map[string]map[int]string

キーが存在するか確認する

マップにキーが存在するかを確認する必要がある場合は、_, ok := m[key]構文を使用することができます。これはマップにキーが存在するかを確認します。存在する場合、oktrueに設定され、存在しない場合はfalseに設定されます。これは、値を取得することなく、特定のキーが存在するかを確認する必要がある場合に便利です。

Golangでは、OK構文を使用することで、マップのキーが存在するかを確認することができます。次のサンプルコードは、マップにキーが存在するかを確認する方法を示しています。

v, ok := m[key]

if ok {
	// キーが存在する場合の処理
} else {
	// キーが存在しない場合の処理
}

このサンプルコードを使用すると、m[key]の値がvに格納され、キーが存在するかどうかをokで確認することができます。

マップをループする

マップの全ての要素を反復処理してキーの存在を確認する必要がある場合は、rangeキーワードを使用することができます。これにより、マップの全ての要素をループしてキーと値にアクセスすることができます。例えば、このコードは、マップの全ての要素をループしてキーと値を表示します。

for key, value := range m {
	fmt.Println("key:", key, "value:", value)
}

まとめ

//Mapの生成
//make(map[key名]value)の型名
intMap := make(map[string]int) //valueがint型
stringMap := make(map[string]string) //valueがstring型

//map[int]stringをvalueとしたMap
m := make(map[string]map[int]string)

//Keyの存在判定
v, ok := m[key]

if ok {
	// キーが存在する場合の処理
} else {
	// キーが存在しない場合の処理
}

// マップを全ループする
for key, value := range m {
	fmt.Println("key:", key, "value:", value)
}

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0