본문 바로가기

0x0a Programming/0x0b Go Lang

Go 강좌 7편. 배열(Array), 슬라이스(Slice), 맵(Map)



1. 배열


오늘은 배열에 대해 알아보도록 하겠습니다.

아, 저번 강좌에서 이번에는 배열에 다뤄본다고 말씀드렸는데.

생각해보니 배열만 하는 것보단 슬라이스, 맵까지 다루는 것이 좋아보여 더 추가하였습니다.



1-1. 사용한다 나는 배열을


배열이란, 변수를 모아 놓은 집합이라고 말할 수 있습니다.

Go언어에서는 배열의 길이가 고정되어있습니다.


음... 예를 들자면 우리 반 학생들의 성적을 변수에 담는다고 가정하면 아래와 같은 변수를 선언해야 됩니다.


딱 보기만 해도 비효율적이고, 반에 학생이 50명이 있다면 하나하나 변수를 50번 선언해야 하며 사용자에게 학생들의 점수를 알려주려 할 때에 

변수에 접근하여 값을 얻어올 때도 상당히 불편함을 겪을 수 있습니다.


여기서 우리는 배열을 사용하면 이 문제점들을 한번에 잡을 수 있습니다!


상당히 편해지고 접근도 편해졌습니다.

아, 배열에 접근 할 때는 인덱스로 접근을 하게 됩니다.

이 인덱스는 항상 0부터 시작합니다.


아래는 학생의 점수 배열에 인덱스로 각 배열 요소에 접근하여 그 값을 출력하는 예제입니다.



아까처럼 변수를 일일히 선언하는 것보다 배열 하나를 사용하는 것이 더 편하며,

변수를 일일히 접근하는 것보다 배열에 인덱스를 이용하여 접근하는 것이 더 편하다는 것을 알 수 있습니다.


아래는 배열의 선언 방법입니다.



데이터 타입 앞에 대괄호를 여러 번 사용하면 다차원 배열을 생성할 수 있습니다.

아래와 같이 다차원 배열을 만들 수 있습니다.




2. 슬라이스


슬라이스는 배열과 비슷하지만, 길이가 고정되있지 않는 녀석입니다.

크기가 동적으로 늘어납니다.


또한 배열과 다른 타입입니다.

배열은 제네릭 타입이지만 슬라이스는 참조 타입입니다.



2-1. 사용한다 슬라이스를 나는


아래는 슬라이스를 선언하는 방법입니다.



슬라이스는 배열과 달리 크기를 정하지 않습니다.


아래에는 슬라이스를 선언하여 값을 초기화하는 예제입니다.



아래에는 이 초기화한 값에 다른 값을 슬라이스에 추가하는 예제입니다.



다음 아래에는 슬라이스에 접근하여 값을 가져오는 방법들입니다.




3. 맵


맵이란 사전과 비슷합니다.

Love 라는 단어에 "사랑"이라는 뜻이 있듯이 맵에는 Key, Value가 있습니다.


이러한 맵을 Go언어에서는 기본 자료형으로 지원합니다.

이 맵은 슬라이스와 마찬가지로 참조 타입입니다. 



3-1. 맵을 사용한다 나는


아래는 맵을 선언하는 방법입니다.



아래에는 맵을 선언하여 Key 와 Value를 초기화하는 예제입니다.



이제 이 맵을 이용하여 출력하고 데이터를 삭제하는 예제입니다.




다음 강좌에서는 함수에 대해 알아보도록 하겠습니다.