[구글 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
관련 게시글
[구글 Go 하자] 32. 슬라이스에 append 함수로 순차 보관
[구글 Go 하자] 33. 슬라이스가 꽉 찰 때 append 함수를 사용하면 알아서 늘려줘요.
[구글 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 하자] 33. 슬라이스가 꽉 찰 때 append 함수를 사용하면 알아서 늘려줘요. (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 |