33. 슬라이스가 꽉 찰 때 append 함수를 사용하면 알아서 늘려줘요.
안녕하세요. 언제나 휴일, 언휴예요.
앞에서 슬라이스의 저장소 용량은 동적이라고 말했어요. 그런데 좀 더 정확히 말하면 저장소의 용량은 자동으로 확장하는 제법 똑똑한 컬렉션이예요.
만약 꽉 차 있는 상태의 슬라이스에 append 함수를 이용하여 자료를 추가하면 저장소의 용량은 알아서 늘려줘요. 현재 용량이 0이면 1로 늘려주고 그 외에는 현재 용량의 두 배로 늘어나요. 다음의 예제 코드는 이를 확인하는 간단한 코드예요.
//슬라이스가 꽉 찰 때 append 함수 사용
package main
import "fmt"
func main() {
var s []int
fmt.Printf("용량:%d 원소 개수:%d\n", cap(s), len(s))
var i int
for i = 0; i < 10; i++ {
s = append(s, i+1)
fmt.Printf("용량:%d 원소 개수:%d\n", cap(s), len(s))
}
}
실행 결과는 다음과 같아요.
용량:0 원소 개수:0
용량:1 원소 개수:1
용량:2 원소 개수:2
용량:4 원소 개수:3
용량:4 원소 개수:4
용량:8 원소 개수:5
용량:8 원소 개수:6
용량:8 원소 개수:7
용량:8 원소 개수:8
용량:16 원소 개수:9
용량:16 원소 개수:10
관련 게시글
[구글 Go 하자] 32. 슬라이스에 append 함수로 순차 보관
[구글 Go 하자] 34.슬라이스도 초기 값을 설정할 수 있어요.
[구글 Go 하자] 35. 배열의 대입 연산은 값 복사, 슬라이스는 참조
[구글 Go 하자] 36. copy 함수를 사용하면 원소 값을 복사할 수 있어요.
[구글 Go 하자] 37. 슬라이스[start:last]로 부분 슬라이스를 만들 수 있어요.
'언어 자료구조 알고리즘 > 구글 Go' 카테고리의 다른 글
[구글 Go 하자] 37. 슬라이스[start:last]로 부분 슬라이스를 만들 수 있어요. (0) | 2016.12.17 |
---|---|
[구글 Go 하자] 36. copy 함수를 사용하면 원소 값을 복사할 수 있어요. (0) | 2016.12.17 |
[구글 Go 하자] 35. 배열의 대입 연산은 값 복사, 슬라이스는 참조 (0) | 2016.12.17 |
[구글 Go 하자] 34.슬라이스도 초기 값을 설정할 수 있어요. (0) | 2016.12.17 |
[구글 Go 하자] 32. 슬라이스에 append 함수로 순차 보관 (0) | 2016.12.17 |
[구글 Go 하자] 31. 동적 배열, 슬라이스 기초 (0) | 2016.12.17 |
[구글 Go 하자] 30. 배열의 요소를 순차적으로 방문하기 (0) | 2016.10.14 |
[구글 Go 하자] 29. 구글 Go 언어, 배열 기초 (0) | 2016.10.13 |
[구글 Go 하자] 28. 구글 Go 언어 선택문은 switch (0) | 2016.10.12 |
[구글 Go 하자] 27. Go 언어 반복문은 for 문, 반복문 탈출은 break (0) | 2016.10.11 |