[Go 언어] 29. 배열 기초

안녕하세요. 언제나 휴일입니다.

이번에는 Go 언어의 배열에 관해 알아볼게요. Go언어의 배열은 같은 종류의  고정 개수의 데이터를 하나의 이름으로 관리하는 형식입니다.

Go언어에서 배열을 선언할 때 원소 형식과 원소 개수를 지정하여 배열을 선언하거나 원소들의 초기값을 지정하여 선언할 수 있습니다.

먼저 원소 형식과 원소 개수를 지정하여 배열을 선언하는 방법입니다.

var 배열명 [원소개수] 원소 형식

다음은 int 형식의 3개의 원소를 관리할 수 있는 배열 scores를 선언한 예제 코드입니다. 배열에서 원소의 개수를 알고 싶을 때는 len(배열 이름)을 사용합니다.

// Example 배열 기초
package main

import "fmt"

func main() {
	var scores [3]int
	fmt.Println("=== scores ===")
	for i := 0; i < len(scores); i++ {
		fmt.Println(scores[i])
	}
}

Go 언어에서는 배열을 선언하고 값을 초기화하기 않으면 원소의 값은 디폴트 값으로 초기화합니다. int 형식일 때의 디폴트 값은 0입니다. 따라서 위 예제를 실행하면 다음과 같은 결과를 출력합니다.

=== scores ===
0
0
0

다음은 원소들의 초기값을 지정하여 배열을 선언하는 방법입니다. 이 때는 배열명 앞에 var나 배열명 뒤에 [원소 개수]원소 형식 부분을 생략할 수 있습니다. 그리고 이 때는 원소 개수 대신 […]로 명시할 수 있습니다.

var 배열명[원소 개수] 원소 형식 = [원소개수] 원소 형식{초기값, …}

var 배열명 = [원소개수] 원소 형식{초기값,…}

배열명 := [원소개수] 원소 형식{초기값,…}

배열명 := […]원소 형식{초기값,…}

다음은 원소들의 초기값을 지정하여 배열을 선언한 예제 코드입니다.

// Example 배열 기초(원소 초기화)
package main

import "fmt"

func main() {
	var scores [3]int = [3]int{1, 2}
	fmt.Println("=== scores ===")
	for i := 0; i < len(scores); i++ {
		fmt.Println(scores[i])
	}

	var scores2 = [3]int{1, 2}
	fmt.Println("=== scores2 ===")
	for i := 0; i < len(scores2); i++ {
		fmt.Println(scores2[i])
	}

	scores3 := [3]int{1, 2}
	fmt.Println("=== scores3 ===")
	for i := 0; i < len(scores3); i++ {
		fmt.Println(scores3[i])
	}

	scores4 := [...]int{1, 2}
	fmt.Println("=== scores4 ===")
	for i := 0; i < len(scores4); i++ {
		fmt.Println(scores4[i])
	}

}

실행 결과는 다음과 같아요.

=== scores ===
1
2
0
=== scores2 ===
1
2
0
=== scores3 ===
1
2
0
=== scores4 ===
1
2