Menu
Coddy logo textTech

Map 비교하기

Coddy GO 여정의 로직 & 흐름 섹션에 포함된 레슨 — 68개 중 29번째.

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")
}

두 맵(map)이 동일한 키-값 쌍을 포함하고 있는지 확인해야 할 때, 두 맵을 순회하며 각 요소를 개별적으로 비교하는 사용자 정의 함수를 작성해야 합니다. 이 방식은 비교 로직에 대한 완전한 제어권을 제공하므로, 특정 사용 사례에 맞춰 '동일함'의 기준을 정확하게 정의할 수 있습니다.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

치트 시트

맵은 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")
}

두 맵이 같은지 확인하려면, 두 맵을 순회하며 각 요소를 개별적으로 비교하는 사용자 정의 함수를 작성해야 합니다.

직접 해보기

이 레슨에는 코드 챌린지가 없습니다.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

로직 & 흐름의 모든 레슨