[구글 Go 하자] 32. 슬라이스에 append 함수로 순차 보관
안녕하세요. 언제나 휴일, 언휴예요.
슬라이스의 원소 개수는 len 함수를 통해 확인할 수 있고 저장소 용량은 cap으로 확인할 수 있어요. 그리고 append 함수를 이용하여 순차적으로 보관할 수 있어요. 다음 소스 코드는 5명의 학생 성적은 배열에 이미 갖고 있는 상태에서 슬라이스를 생성하고 나머지 5명의 성적은 최종 사용자로부터 입력받는 예제 코드예요.
// 5명 성적은 슬라이스에 초기 설정, 5명의 성적은 입력받기
package main
import "fmt"
func main() {
var arr [5]int = [5]int{90, 88, 76, 80, 99}
var scores []int = make([]int, 5, 10)
var i int
for i = 0; i < 5; i++ {
scores[i] = arr[i]
}
fmt.Printf("저장소 크기:%d 보관한 자료 개수:%d\n", cap(scores), len(scores))
var score int
for i = 5; i < 10; i++ {
fmt.Printf("%d 번 성적:", i+1)
fmt.Scanln(&score)
scores = append(scores, score)
fmt.Printf("저장소 크기:%d 보관한 자료 개수:%d\n", cap(scores), len(scores))
}
fmt.Println("==== 학생 성적 출력 ====")
var sum int
for i = 0; i < 10; i++ {
sum += scores[i]
fmt.Printf("%d번 성적:%d\n", i+1, sum)
}
fmt.Printf("총점:%d\n", sum)
}
실행 결과는 다음과 같아요.
저장소 크기:10 보관한 자료 개수:5
6 번 성적:90
저장소 크기:10 보관한 자료 개수:6
7 번 성적:60
저장소 크기:10 보관한 자료 개수:7
8 번 성적:75
저장소 크기:10 보관한 자료 개수:8
9 번 성적:40
저장소 크기:10 보관한 자료 개수:9
10 번 성적:96
저장소 크기:10 보관한 자료 개수:10
==== 학생 성적 출력 ====
1번 성적:90
2번 성적:178
3번 성적:254
4번 성적:334
5번 성적:433
6번 성적:523
7번 성적:583
8번 성적:658
9번 성적:698
10번 성적:794
총점:794
이번에는 슬라이스에 값을 순차 보관하는 append 함수를 알아보기로 해요. append 함수는 입력 인자가 가변 길이로 여러 개의 값을 인자로 전달하여 여러 개의 값을 한꺼번에 저장할 수도 있어요. 다음은 이를 확인하는 간략한 코드예요.
//슬라이스에 append 함수로 여러 개의 값을 한꺼번에 추가
package main
import "fmt"
func main() {
var datas []int
fmt.Println(datas)
datas = append(datas, 9, 8, 7, 6, 5, 4)
fmt.Println(datas)
}
실행 결과는 다음과 같아요.
[]
[9 8 7 6 5 4]
관련 게시글
[구글 Go 하자] 33. 슬라이스가 꽉 찰 때 append 함수를 사용하면 알아서 늘려줘요.
[구글 Go 하자] 34.슬라이스도 초기 값을 설정할 수 있어요.
[구글 Go 하자] 35. 배열의 대입 연산은 값 복사, 슬라이스는 참조
'언어 자료구조 알고리즘 > 구글 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 하자] 33. 슬라이스가 꽉 찰 때 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 |