반응형


다른 여러 프로그래밍 언어들과 마찬가지로 Go Lang도 많은 데이터를 다루어야할 경우 사용할 수 있는 자료구조를 제공하고 있습니다.

그 대표적인 것들이 바로 배열(Array), 슬라이스(Slice), 맵(Map)입니다.

 

이번 시간에는 배열(Array)에 대해 알아보도록 하겠습니다.

 

Go Lang의 배열은 길이가 고정된 동일한 타입을 갖는 값을 순서대로 저장하는 자료구조입니다.

 

  • Go Lang의 배열에서 인덱스는 0부터 시작합니다.
  • 배열이 가지고 있는 각 값을 원소라고 하며 Go Lang의 정수형(int)과 문자열(string), 부동 소수점(float) 등 모든 타입에 대한 배열을 만들 수 있습니다.
  • 배열 선언은 대괄호[]를 통해 합니다.
배열의 형태
var 변수명 [배열크기] 데이터타입​

예제. 배열 만들기

package main

import "fmt"

func main() {
	var singleArray [3]int = [3]int {1, 2, 3}
	fmt.Println(singleArray)
}

 

출력결과물

[1 2 3]

위의 예제 6은 singleArray를 정수형의 3가지 원소를 가진 배열임을 선언하였고, 선언과 동시에 그 3가지 원소값을 1,2,3으로 초기값을 지정해준 예제입니다. 이처럼 배열의 초기값을 지정해주는 것을 배열 초기화라고 합니다.
대괄호[]안에 ...을 사용해 배열크기를 자동으로 지정해줄 수 있습니다.

 

아래의 식들은 결과적으로 동일한 의미를 나타냅니다.

 

var singleArray [3]int = [3]int {1, 2, 3}
var singleArray = [3]int {1, 2, 3}
var singleArray = [...]int {1, 2, 3}

 

singleArray 선언시에 반드시 타입을 지정해주지 않아도 되는 이유는 Go Lang이
R Value를 통해 L Value의 타입을 알 수 있는 언어이기 때문입니다.

다만,

 

var singleArray [3]int

 

까지만 지정해서 index 값을 지정해주지 않으면, 출력결과물은 [ 0 0 0 ] 이 됩니다.


예제. 다중 배열 만들기

 

package main

import "fmt"

func main() {
	var multiArray = [2][3][4]int{
		{{1, 2, 3},
			{1, 2, 3},
			{1, 2, 3}},
		{{1, 2, 3},
			{1, 2, 3},
			{1, 2, 3}},
	}
	fmt.Println(multiArray)
}

 

출력결과물

 

[[[1 2 3 4] [1 2 3 4] [1 2 3 4]] [[1 2 3 4] [1 2 3 4] [1 2 3 4]]]

 

위의 예제는 1,2,3,4의 [4]배열이 [3]개 있고, 그 [3]배열이 다시 [2]개 더 있는 형태입니다.


예제. 배열 초기화

 

package main

import "fmt"

func main() {
	var iArray = [10]int {
		5: 10, 9: 23,
	}
	fmt.Println(iArray)
}

 

출력결과물

 

[0 0 0 0 0 10 0 0 0 23]

 

배열의 index는 0부터 시작되기 때문에 5번째 index에 10이라는 정수값을 초기화해주려면 4: 10을 입력해야합니다. 위의 예제에서는 5: 10, 9: 23으로 초기화했으므로 10개의 원소 중 6번째와 10번째 값에 각각 10과 23이라는 값이 지정되었음을 확인할 수 있습니다.

반응형

'IT > Develop' 카테고리의 다른 글

Go Lang 기초 10 - 맵(Map)  (0) 2021.07.28
Go Lang 기초 9 - 슬라이스(Slice)  (0) 2021.07.28
Go Lang 기초 7 - 함수 func  (0) 2021.07.28
Go Lang 기초 6 - 반복문 For  (0) 2021.07.28
Go Lang 기초 5 - 조건문 Switch  (0) 2021.07.28

+ Recent posts