안녕하세요. 언제나 휴일입니다.
이번에는 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