Go Lang 기초 8 - 배열(Array)

만두아빠·2021년 7월 25일
1

Go Lang 기초

목록 보기
8/14
post-thumbnail

다른 여러 프로그래밍 언어들과 마찬가지로 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이라는 값이 지정되었음을 확인할 수 있습니다.

profile
Velog는 잠시 쉬어갑니다! 아래의 링크로!

0개의 댓글