Go에서 슬라이스는 유연한 배열과 같은 유형을 나타내는 강력한 데이터 구조입니다. 슬라이스로 작업할 때 슬라이스를 선언하는 두 가지 다른 방법을 접했을 수 있습니다.
효율적이고 관용적인 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!