안녕하세요. 언제나 휴일, 언휴예요.
슬라이스도 생성하면서 값을 초기 설정할 수 있어요. 이 때는 원소 개수를 명시하지 않다는 점 빼고는 배열 초기화와 같아요.
var name[] type = []type{값 목록}
이전 예제에서는 5명의 학생 성적을 배열에 갖고 있는 상태에서 출발했었죠. 이번에는 슬라이스를 선언하면서 5명의 학생 성적으로 초기값을 설정한 상태에서 나머지 5명의 성적을 최종 사용자로부터 입력받는 예제 코드예요.
// 슬라이스 초기화 후에 성적 입력 package main import "fmt" func main() { var scores []int = []int{90, 88, 76, 80, 99} var i int 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) }
실행 결과는 다음과 같아요.
저장소 크기:5 보관한 자료 개수:5 6 번 성적:90 저장소 크기:10 보관한 자료 개수:6 7 번 성적:89 저장소 크기:10 보관한 자료 개수:7 8 번 성적:65 저장소 크기:10 보관한 자료 개수:8 9 번 성적:77 저장소 크기:10 보관한 자료 개수:9 10 번 성적:45 저장소 크기:10 보관한 자료 개수:10 ==== 학생 성적 출력 ==== 1번 성적:90 2번 성적:178 3번 성적:254 4번 성적:334 5번 성적:433 6번 성적:523 7번 성적:612 8번 성적:677 9번 성적:754 10번 성적:799 총점:799