[Go 언어] 34.슬라이스도 초기 값을 설정할 수 있어요.

안녕하세요. 언제나 휴일, 언휴예요.

슬라이스도 생성하면서 값을 초기 설정할 수 있어요. 이 때는 원소 개수를 명시하지 않다는 점 빼고는 배열 초기화와 같아요.

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