【Golang】map(連想配列)が空かどうかを確かめる方法

Golang

Golangでmapの中が空かどうかを確かめる方法

Golangにおいてmap(連想配列)の中身が存在するかどうかを確かめるには、以下の2通りの方法があります。

  • nilチェックする
  • len()関数で要素数が0かどうかを確かめる

それぞれ順に解説します。

nilチェックしてmapが空であることを確かめる

package main

import "fmt"

func main() {
	var map1 map[int]int

	fmt.Println(map1 == nil)
}

// 出力結果
// true

しかし、このやり方は、mapの宣言だけを行って値を代入していない場合に限ります。

そのため、以下のようにmapの変数宣言だけでなくゼロ値を代入した場合、nilチェックはfalseになります。

package main

import "fmt"

func main() {
	map2 := map[int]int{}

	fmt.Println(map2 == nil)
}

// 出力結果
// false

len()関数を使ってmapの要素数が0であることを確かめる

単にmap(連想配列)の要素が存在しないことを確認すれば良いのなら、Golangのlen()関数を使用して要素数をチェックし、それが0であるかを確かめれば大丈夫です。

package main

import "fmt"

func main() {
	var map1 map[int]int
	map2 := map[int]int{}

	fmt.Println(len(map2))
	fmt.Println(len(map1))
}

// 出力結果
// 0
// 0

上記のやり方であれば、mapを宣言しただけの場合でも要素数が0であることを確認できます。

なお、len()関数を使い方については、以下のの記事でより詳しく解説しています。

タイトルとURLをコピーしました