🔥 슬라이스(slice)

184자
3분

Go 언어에서 배열(array)은 고정된 크기를 가지고 있어요. 반면에 슬라이스(slice)는 배열의 요소들을 동적으로 크기를 조정하며 유연하게 바라볼 수 있답니다. 실제로 슬라이스는 배열보다 훨씬 더 일반적으로 사용되지요.

슬라이스의 타입은 []T로 표현하는데, 여기서 T는 슬라이스의 요소 타입이에요.

슬라이스는 두 개의 인덱스를 지정하여 형성할 수 있어요. 하한(low)과 상한(high)을 콜론(:)으로 구분하여 지정하는 거죠:

a[low : high]
 
go

이렇게 하면 반개방 구간(half-open range)이 선택되는데, 첫 번째 요소는 포함되지만 마지막 요소는 제외된답니다.

다음 표현식은 a의 1번 인덱스부터 3번 인덱스까지의 요소를 포함하는 슬라이스를 생성해요:

a[1:4]
 
go

아래 예제 코드를 통해 슬라이스를 직접 만들어 볼까요?

package main
 
import "fmt"
 
func main() {
	// 정수형 배열 선언 및 초기화
	primes := [6]int{2, 3, 5, 7, 11, 13}
 
	// primes 배열의 인덱스 1부터 3까지의 요소로 슬라이스 생성
	var s []int = primes[1:4]
 
	// 생성된 슬라이스 출력
	fmt.Println(s)
}
 
go

위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있어요:

[3 5 7]
text

보시다시피 primes 배열의 인덱스 1부터 3까지의 요소인 3, 5, 7로 이루어진 슬라이스가 생성되었네요.

이처럼 슬라이스를 사용하면 배열의 일부분을 동적으로 잘라내어 사용할 수 있답니다. 슬라이스는 배열보다 훨씬 유연하고 강력한 기능을 제공하기 때문에 Go 언어에서 널리 활용되고 있지요.