>백엔드 개발 >Golang >Go Slices: `var s []int` 또는 `s := make([]int, 0)` – 어떤 선언이 가장 좋나요?

Go Slices: `var s []int` 또는 `s := make([]int, 0)` – 어떤 선언이 가장 좋나요?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-17 07:10:27136검색

Go Slices: `var s []int` or `s := make([]int, 0)` – Which Declaration is Best?

Go에서 슬라이스 선언과 만들기: var s []int 또는 s := make([]int, 0)?

Go에서 슬라이스는 유연한 배열과 같은 유형을 나타내는 강력한 데이터 구조입니다. 슬라이스로 작업할 때 슬라이스를 선언하는 두 가지 다른 방법을 접했을 수 있습니다.

  • 간단한 선언: var s []int
  • make () 선언: s := make([]int, 0)

효율적이고 관용적인 Go 코드를 작성하려면 이 두 가지 접근 방식의 차이점을 이해하는 것이 중요합니다.

var s []int

간단한 선언 var s []int는 메모리를 할당하지 않습니다. 이는 nil 슬라이스를 생성합니다. 즉, s는 빈 메모리 주소를 가리킵니다. 이 선언은 일반적으로 필요한 슬라이스의 정확한 크기를 모르거나 나중에 메모리를 동적으로 할당해야 할 때 사용됩니다.

s := make([]int, 0 )

반대로 s := make([]int, 0) 은 요소가 0개인 슬라이스에 메모리를 할당합니다. 특정 용량의 슬라이스를 생성하도록 컴파일러에 명시적으로 지시합니다. 이는 확장되기 전에 보유할 수 있는 최대 요소 수입니다. 이 경우 용량은 0입니다. 필요한 슬라이스의 정확한 크기를 알고 있거나 불필요한 메모리 재할당을 피하려는 경우 이 접근 방식이 선호됩니다.

어느 것이 더 낫습니까?

일반적으로 필요한 슬라이스의 정확한 크기를 모르거나 메모리를 할당하려는 경우 var s []int를 사용하는 것이 더 관용적입니다. 동적으로. 정확한 크기를 미리 알고 있거나 메모리 재할당을 피해야 하는 경우 s := make([]int, 0) 가 더 나은 선택입니다.

위 내용은 Go Slices: `var s []int` 또는 `s := make([]int, 0)` – 어떤 선언이 가장 좋나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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