[go] Go 언어에서의 슬라이스와 배열은 어떻게 다른가요?
배열 (Array)
배열은 동일한 데이터 유형의 고정된 크기의 요소를 가지고 있습니다. 크기가 정적으로 정의되며, 한 번 생성된 배열의 크기는 변경할 수 없습니다.
예를 들어,
var arr [5]int // int형 5개 요소를 가지는 배열
슬라이스 (Slice)
슬라이스는 배열에 대한 동적인 view를 제공합니다. 동적 크기를 갖고 있으며, 배열과 달리 크기를 동적으로 조절할 수 있습니다.
예를 들어,
s := make([]int, 0, 5) // int형 요소를 가지는 길이가 0이고 용량이 5인 슬라이스 생성
어떤 것을 선택해야 할까요?
- 배열은 크기가 고정적이며 메모리에 연속적으로 할당되므로 인덱싱에 빠릅니다.
- 슬라이스는 동적 크기를 가지고 있어 삽입, 삭제 등의 연산에 유용하며, Go 언어에서 주로 사용됩니다.
즉, 요구 사항에 따라 배열 또는 슬라이스를 사용해야 합니다.