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つのマップに同じキーと値のペアが含まれているか確認する必要がある場合は、両方のマップを反復処理し、各要素を個別に比較するカスタム関数を記述する必要があります。この方法なら、比較ロジックを完全に制御でき、特定の用途において「等しい」とは何を意味するのかを正確に定義できます。
自分で試してみよう
このレッスンにはコードチャレンジは含まれていません。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
論理とフローのすべてのレッスン
自分で練習してみよう: Goオンラインコンパイラ