배열(Array)
10 컬렉션
배열(Array)

Go언어에서는 두 개 이상의 변수를 모아 놓은 것을 '컬렉션'이라고 합니다. 배열을 포함한 컬렉션은 다수의 데이터를 저장하고 처리하는 경우에 유용하고 굉장히 많이 쓰입니다. 컬렉션은 그 기능에 따라 이름이 다른 세 가지 용법이 있습니다. 이번 강의에서 다룰 내용은 배열(Array)입니다.

Go언어에서의 배열은 정적입니다. 즉, 고정된 배열 크기 안에 동일한 데이터를 연속적으로 저장할 수 있다는 뜻입니다. 그래서 크기를 동적으로 증가시키거나 부분 배열을 발췌하는 등의 기능을 가지고있지 않습니다. 배열의 선언은 "var 배열이름 [배열크기]자료형" 형식으로 합니다. 여기서 배열 크기를 데이터 타입 앞에 쓰는 것은 C언어와 Java 같은 다른 언어들과 다릅니다. Go언어에서는 배열의 크기는 자료형을 구성하는 한 요소입니다. 따라서, [3]int와 [5]int는 string과 float32처럼 타입 자체가 다른 것입니다. 배열이 선언되면 배열의 요소를 인덱스를 사용하여 읽거나 쓸 수 있습니다.


배열을 선언하고 읽고 쓰는 아래에 예시 코드를 바로 실행해보세요.

GO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package main

import "fmt"

func main() {
	var arr1 [5]int   //길이가 5인 int형 배열 arr1을 선언
	fmt.Println(arr1) //숫자를 선언하지 않고 출력해보기

	arr1 = [5]int{1, 2, 3, 4, 5}        //배열 초기화
	fmt.Println(arr1, arr1[0], arr1[4]) //배열 전체와 인덱스에 저장된 값들 출력해보기

	arr2 := [4]int{4, 5, 6, 7} //:= 를 이용해 선언
	arr2[0] = 32               //인덱스를 이용해 값을 초기화
	fmt.Println(arr2)          //arr2 전체 출력해보기

	var arr3 = [...]int{9, 8, 7, 6} //[...]을 이용한 배열 크기 자동 설정
	fmt.Println(arr3, len(arr3))    //arr3 전체와  배열 크기 출력해보기
}
실행하여 결과를 확인하세요!

예시 코드에서 보았듯이, 배열은 다양한 방법으로 선언하고 초기화할 수 있습니다. 위 예시에서 미리 설명하지 않은 용법이 쓰였습니다. 바로 배열의 길이를 알 수 있는 len() 함수와 [...] 용법입니다. Go언어에서 지원하는 내장 함수 len()을 사용하면 배열의 길이(요소의 개수)를 알 수 있습니다. 그리고 선언할 때 [...] 용법을 사용하면 배열 크기를 자동으로 설정해줍니다. 그렇다고해서 이후에 크기를 바꿀 수 있는 것은 아니라는 것을 주의해야합니다.


다차원 배열


 다른 언어들과 마찬가지로 Go언어도 다차원 배열을 지원합니다. 배열을 선언하는 것에 있어 특별한 차이점은 없기때문에 간단한 형태만 보여주도록 하겠습니다.

GO
var multiArray [2][3][4]int //3차원 배열 선언
multiArray[1][1][2] = 10  // 인덱스를 이용한 값 초기화

또한, 배열을 행렬과 같은 형태로 보기 쉽게 묶어서 초기화할 수 있습니다. 차원은 얼마든지 늘릴 수 있지만 4차원 이상은 거의 쓰이지 않습니다.


아래에 다차원 배열을 한번에 선언하고 초기화 하는 예시 코드를 바로 실행해보세요.

GO
1
2
3
4
5
6
7
8
9
10
11
12
13
package main

import "fmt"

func main() {
    var a = [3][3]int{
		{1, 2, 3},        
		{4, 5, 6},
		{7, 8, 9}, //3x3배열 초기화
    }
	
    fmt.Println(a[1][2]) //2행 3열의 값 출력
}
실행하여 결과를 확인하세요!
질문하기
추가 자료
no files uploaded

추가 자료가 없습니다

여기서 새로운 학습 자료를 확인하세요!
선생님이 추가한 자료들을 바로 확인할 수 있어요.