🔥 Map 리터럴

198자
2분

Map 리터럴을 사용하면 Map을 초기화하면서 키와 값을 설정할 수 있습니다. Map 리터럴은 struct 리터럴과 유사한데, 차이점은 Map 리터럴에서는 키를 반드시 지정해야 한다는 거예요.

아래 코드를 살펴보겠습니다:

go
package main
 
import "fmt"
 
type Vertex struct {
    Lat, Long float64
}
 
var m = map[string]Vertex{
    "Bell Labs": Vertex{
        40.68433, -74.39967,
    },
    "Google": Vertex{
        37.42202, -122.08408,
    },
}
 
func main() {
    fmt.Println(m)
}
 
go
package main
 
import "fmt"
 
type Vertex struct {
    Lat, Long float64
}
 
var m = map[string]Vertex{
    "Bell Labs": Vertex{
        40.68433, -74.39967,
    },
    "Google": Vertex{
        37.42202, -122.08408,
    },
}
 
func main() {
    fmt.Println(m)
}
 

코드를 하나씩 뜯어보면:

go
type Vertex struct {
    Lat, Long float64
}
 
go
type Vertex struct {
    Lat, Long float64
}
 
  • Vertex라는 struct 타입을 정의하고 있어요.
  • Vertex는 Lat와 Long이라는 두 개의 float64 필드를 가지고 있죠.
go
var m = map[string]Vertex{
    "Bell Labs": Vertex{
        40.68433, -74.39967,
    },
    "Google": Vertex{
        37.42202, -122.08408,
    },
}
 
go
var m = map[string]Vertex{
    "Bell Labs": Vertex{
        40.68433, -74.39967,
    },
    "Google": Vertex{
        37.42202, -122.08408,
    },
}
 
  • m이라는 변수를 선언하면서 Map 리터럴로 초기화하고 있습니다.
  • Map의 키는 string 타입이고, 값은 Vertex 타입이에요.
  • "Bell Labs"와 "Google"이라는 두 개의 키를 지정했는데, 각 키마다 Vertex 값을 설정하고 있죠.
  • Vertex 값은 중괄호 {}로 감싸고, 그 안에 Lat와 Long 값을 콤마로 구분해서 나열합니다.
go
func main() {
    fmt.Println(m)
}
 
go
func main() {
    fmt.Println(m)
}
 
  • main 함수에서는 그냥 m을 출력하고 있어요.
  • 이 코드를 실행하면 아래와 같이 출력될 거예요:
text
map[Bell Labs:{40.68433 -74.39967} Google:{37.42202 -122.08408}]
text
map[Bell Labs:{40.68433 -74.39967} Google:{37.42202 -122.08408}]

Map 리터럴을 사용하니 Map 초기화가 간단하고 직관적이네요. 키와 값을 한 번에 설정할 수 있어서 편리합니다.

YouTube 영상

채널 보기
Const 펑터 - 아무것도 안 하는 펑터가 필요한 이유 | 프로그래머를 위한 카테고리 이론
Product와 Coproduct가 Bifunctor인 이유 | 프로그래머를 위한 카테고리 이론
미들웨어 적용과 라우팅 | NestJS 가이드
List 펑터 - 왜 map은 for 루프보다 강력한가? | 프로그래머를 위한 카테고리 이론
NestJS 필터 바인딩 - Method, Controller, Global Scope 비교 | NestJS 가이드
NestJS 파이프가 뭔가요? 컨트롤러를 보호하는 방법 | NestJS 가이드
펑터 합성 | 프로그래머를 위한 카테고리 이론
리더 펑터 - 함수도 펑터다! | 프로그래머를 위한 카테고리 이론