안녕하세요. 언제나 휴일, 언휴예요.
슬라이스의 원소 개수는 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]