배열은 같은 타입의 데이터들로 이루어진 타입이다. 배열을 이루는 각 값은 요소라고 하고 요소를 가리키는 위치 값을 인덱스라고 한다. 배열은 같은 타입의 여러 데이터를 하나의 변수로 효과적으로 사용할 수 있게 해준다. 배열은 데이터 타입 앞에 [] 를 붙여 만든다.

12.2.1 배열 선언 및 초기화

var nums [5]int // int 타입 요소 5개 생성

초기값을 위처럼 지정하지많으면 각 타입의 기본값으로 자동적으로 초기화 된다. (int = 0 , float 0.0)

days := [3]string("monday", "sunday")

이렇게 초기값을 넣어주면 앞 인덱스부터 값이 자동적으로 들어간다.

배열의 갯수는 상수로 써서 넣어주는것이 옳다.

var nums := [...]int(10,20,30,40)

[...]를 해주면 요소의 값을 지정하지 않고 넣을 수 있다. 이때 요소의 갯수가 결정되는 것은 뒤에 오는 초기화 갯수에 따른다.

12.2.2 range 순회


for 반복문에서 range 키워드를 시용하면 배열 요소를 순회할 수 있다.

for i, v := range {} // i 인덱스, v 요소

12.3 배열은 연속된 메모리


배열을 선언하면 컴퓨터는 연속된 메모리 공간을 확보한다. 컴퓨터가 인덱스에 해당하는 요소를 찾아가는 방법은 다음과 같다.

요소위치 = 배열시작주소 + (인덱스 x 타입 크기)