Menu
CoddyTech

Mapの比較

CoddyのGOジャーニー「論理とフロー」セクションの一部。レッスン 29/68。

Goの他の多くのデータ型とは異なり、マップには固有の制限があります。==演算子を使って直接比較することはできません。このルールの唯一の例外は、マップとnilを比較する場合です。

つまり、次のようなコードはコンパイルできません。

map1 := map[string]int{"a": 1, "b": 2}
map2 := map[string]int{"a": 1, "b": 2}

// これはコンパイルエラーを引き起こします!
if map1 == map2 {
    fmt.Println("Maps are equal")
}

ただし、マップとnilは安全に比較できます。

var myMap map[string]int
if myMap == nil {
    fmt.Println("Map is nil")
}

2つのマップに同じキーと値のペアが含まれているか確認する必要がある場合は、両方のマップを反復処理し、各要素を個別に比較するカスタム関数を記述する必要があります。この方法なら、比較ロジックを完全に制御でき、特定の用途において「等しい」とは何を意味するのかを正確に定義できます。

自分で試してみよう

このレッスンにはコードチャレンジは含まれていません。

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

論理とフローのすべてのレッスン

自分で練習してみよう: Goオンラインコンパイラ