🔥 슬라이스 범위 기본값
250자
4분
Go 언어에서 슬라이싱을 할 때, 상한값이나 하한값을 생략할 수 있어요. 이렇게 하면 기본값을 사용하게 되죠.
슬라이싱 연산에서 하한값의 기본값은 0이며, 상한값의 기본값은 슬라이스의 길이랍니다.
예를 들어, 아래와 같은 배열이 있다고 해볼까요?
var a [10]int
go
이 배열에 대해 다음의 슬라이스 표현식은 모두 동일한 결과를 가져온답니다.
a[0:10] a[:10] a[0:] a[:]
go
실제 코드로 한번 살펴볼까요?
package main import "fmt" func main() { // 초기 슬라이스를 생성해요. s := []int{2, 3, 5, 7, 11, 13} // 인덱스 1부터 4 이전까지 슬라이싱하여 s를 갱신해요. s = s[1:4] fmt.Println(s) // [3 5 7] 출력 // 인덱스 0부터 2 이전까지 슬라이싱하여 s를 갱신해요. s = s[:2] fmt.Println(s) // [3 5] 출력 // 인덱스 1부터 끝까지 슬라이싱하여 s를 갱신해요. s = s[1:] fmt.Println(s) // [5] 출력 }
go
코드를 하나씩 살펴보면서 슬라이싱 과정과 s
의 변화를 이해해 보아요.
- 먼저
[]int{2, 3, 5, 7, 11, 13}
로 초기 슬라이스s
를 생성했어요. s = s[1:4]
로 슬라이싱한 결과를 다시s
에 할당했어요. 이렇게 하면s
는[3 5 7]
로 갱신되겠죠?- 갱신된
s
에 대해s = s[:2]
로 슬라이싱한 결과를 다시s
에 할당했어요. 이제s
는[3 5]
가 되겠네요. - 마지막으로 갱신된
s
에 대해s = s[1:]
로 슬라이싱한 결과를 다시s
에 할당했어요. 최종적으로s
는[5]
가 되겠죠?
이렇게 슬라이싱 연산의 결과를 원래의 슬라이스 변수에 다시 할당하면, 해당 변수는 슬라이싱된 결과로 갱신된답니다. 따라서 s
의 값이 계속 변화하는 것을 볼 수 있어요.
슬라이싱 시에 하한값과 상한값을 생략하면 기본값이 적용되고, 슬라이싱 연산의 결과를 다시 할당하면 슬라이스 변수의 값이 갱신되는 것을 이해하셨나요? 코드를 단계별로 살펴보면서 s
의 변화를 추적해 보는 것이 도움이 될 거예요!