5장. 배열, 슬라이스 및 맵
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
2장에서는 Go의 기본 유형에 대해 알아보았습니다. 이 장에서는 배열, 슬라이스, 맵이라는 세 가지 기본 제공 유형을 더 살펴보겠습니다.
배열
배열은 길이가 고정된 단일 유형의 요소로 이루어진 번호가 매겨진 시퀀스입니다. Go에서는 다음과 같이 보입니다:
var x [5]int
x 는 5개의 int로 구성된 배열의 예입니다. 다음 프로그램을 실행해 보세요:
packagemainimport"fmt"funcmain(){varx[5]intx[4]=100fmt.Println(x)}
이걸 보셔야 합니다:
[0000100]
x[4] = 100 는 "배열 x의 다섯 번째 요소를 100으로 설정"이라고 읽어야 합니다. x[4] 이 네 번째 요소가 아닌 다섯 번째 요소를 나타내는 것이 이상하게 보일 수 있지만 문자열과 마찬가지로 배열은 0부터 인덱싱됩니다. 배열도 비슷한 방식으로 액세스합니다. fmt.Println(x) 을 fmt.Println(x[4]) 으로 변경하면 100을 얻을 수 있습니다.
다음은 배열을 사용하는 프로그램의 예시입니다:
funcmain(){varx[5]float64x[0]=98x[1]=93x[2]=77x[3]=82x[4]=83vartotalfloat64=0fori:=0;i<5;i++{total+=x[i]}fmt.Println(total/5)}
이 프로그램은 일련의 시험 점수의 평균을 계산합니다. 이 프로그램을 실행하면 86.6 이 표시됩니다. 프로그램을 살펴봅시다:
- 먼저 시험 점수를 저장하기 위해 길이 5의 배열을 만든 다음 각 요소를 성적으로 채웁니다.
- 다음으로
for루프를 설정하여 총 점수를 계산합니다. - 마지막으로 총 점수를 요소의 수로 나누어 평균을 구합니다.
이 프로그램은 작동하지만 Go에서 개선할 수 있는 몇 가지 기능을 제공합니다. 특히 i < 5 과 total / 5 은 우리에게 적신호를 보내야 합니다. 등급 수를 5에서 6으로 변경했다고 가정해 봅시다. 이 두 부분도 모두 변경해야 합니다. 대신 배열의 길이를 사용하는 것이 더 나을 것입니다:
vartotalfloat64=0fori:=0;i<len(x);i++{total+=x[i]}fmt.Println(total/len(x))
계속해서 이러한 변경 사항을 적용하고 프로그램을 실행하세요. 오류가 표시될 것입니다:
$go run tmp.go# command-line arguments.\tmp.go:19: invalid operation: total /5(mismatched types float64 and int)
여기서 문제는 len(x) 와 total 의 유형이 다르다는 것입니다. total 는 float64 이고 len(x) 는 int 입니다. 따라서 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access