>백엔드 개발 >Golang >Go Maps: `map[string]int{}` 대 `make(map[string]int)`: 차이점은 무엇입니까?

Go Maps: `map[string]int{}` 대 `make(map[string]int)`: 차이점은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-03 06:53:40900검색

Go Maps: `map[string]int{}` vs. `make(map[string]int)`: What's the Difference?

make가 있는 맵 초기화와 make가 없는 맵 초기화의 차이점 이해

Go에서 맵을 처리할 때 두 가지 서로 다른 초기화 형식을 접할 수 있습니다.

1. 맵 리터럴 사용:

var m = map[string]int{}

2. make 함수 사용:

var m = make(map[string]int)

기능적 차이점:

가장 큰 차이점은 맵이 초기화되는 방식에 있습니다. make를 사용하는 두 번째 형식은 항상 빈 맵을 생성합니다. 그러나 첫 번째 형식은 맵 리터럴의 고유한 경우입니다. 맵 리터럴은 초기 키-값 쌍으로 맵을 구성할 수 있습니다. 예를 들어:

m := map[bool]string{false: "FALSE", true: "TRUE"}

동등성 및 성능:

예제의 일반화된 버전

m := map[T]U{}

은 make를 호출하는 것과 동일합니다.

m := make(map[T]U)

성능 측면에서 두 접근 방식은 생성 시 동일하게 작동합니다. 빈 맵.

초기 용량:

make 사용의 주요 이점은 초기 용량을 지정할 수 있다는 것입니다. 이는 make 함수에 정수 인수를 추가하여 수행할 수 있습니다.

m := make(map[T]U, 50)

이는 50개 요소에 할당된 공간으로 맵을 초기화합니다. 맵 증가가 예상되는 경우 사전 할당을 통해 향후 메모리 할당을 줄일 수 있습니다.

위 내용은 Go Maps: `map[string]int{}` 대 `make(map[string]int)`: 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.