Go언어에서는 두 개 이상의 변수를 모아 놓은 것을 '컬렉션'이라고 합니다. 배열을 포함한 컬렉션은 다수의 데이터를 저장하고 처리하는 경우에 유용하고 굉장히 많이 쓰입니다. 컬렉션은 그 기능에 따라 이름이 다른 세 가지 용법이 있습니다. 이번 강의에서 다룰 내용은 배열(Array)입니다.
Go언어에서의 배열은 정적입니다. 즉, 고정된 배열 크기 안에 동일한 데이터를 연속적으로 저장할 수 있다는 뜻입니다. 그래서 크기를 동적으로 증가시키거나 부분 배열을 발췌하는 등의 기능을 가지고있지 않습니다. 배열의 선언은 "var 배열이름 [배열크기]자료형" 형식으로 합니다. 여기서 배열 크기를 데이터 타입 앞에 쓰는 것은 C언어와 Java 같은 다른 언어들과 다릅니다. Go언어에서는 배열의 크기는 자료형을 구성하는 한 요소입니다. 따라서, [3]int와 [5]int는 string과 float32처럼 타입 자체가 다른 것입니다. 배열이 선언되면 배열의 요소를 인덱스를 사용하여 읽거나 쓸 수 있습니다.
배열을 선언하고 읽고 쓰는 아래에 예시 코드를 바로 실행해보세요.
예시 코드에서 보았듯이, 배열은 다양한 방법으로 선언하고 초기화할 수 있습니다. 위 예시에서 미리 설명하지 않은 용법이 쓰였습니다. 바로 배열의 길이를 알 수 있는 len() 함수와 [...] 용법입니다. Go언어에서 지원하는 내장 함수 len()을 사용하면 배열의 길이(요소의 개수)를 알 수 있습니다. 그리고 선언할 때 [...] 용법을 사용하면 배열 크기를 자동으로 설정해줍니다. 그렇다고해서 이후에 크기를 바꿀 수 있는 것은 아니라는 것을 주의해야합니다.
다차원 배열
다른 언어들과 마찬가지로 Go언어도 다차원 배열을 지원합니다. 배열을 선언하는 것에 있어 특별한 차이점은 없기때문에 간단한 형태만 보여주도록 하겠습니다.
또한, 배열을 행렬과 같은 형태로 보기 쉽게 묶어서 초기화할 수 있습니다. 차원은 얼마든지 늘릴 수 있지만 4차원 이상은 거의 쓰이지 않습니다.
아래에 다차원 배열을 한번에 선언하고 초기화 하는 예시 코드를 바로 실행해보세요.