Go - 배열: 초보자를 위한 종합 가이드

안녕하세요, Go 언어를 배우고자 하는 여러분! 배열의 세계로 여러분을 안내하게 되어 기쁩니다. 프로그래밍을 가르치는 지식을 여러 해 동안 쌓아온 저는, 배열을 이해하는 것이 프로그래밍 여정에서 매우 중요하다는 것을 확신할 수 있습니다. 그럼, 시작해보겠습니다!

Go - Arrays

배열이란?

시작하기 전에, 책장을 정리하는 상상을 해보세요. 고정된 수의 자리가 있고, 각 자리에 하나의 책을 넣을 수 있습니다. 이것이 프로그래밍에서 배열의 개념입니다 - 동일한 유형의 요소들로 구성된 고정 크기의 컬렉션입니다.

배열 선언

Go에서 배열을 선언하는 것은 "Hey, 나는 특정 수의 자리를 필요해"라고 컴퓨터에게 말하는 것과 같습니다. 다음과 같이 합니다:

var bookshelf [5]string

이 줄은 bookshelf이라는 이름의 배열을 만들어 5개의 문자열을 저장할 수 있게 합니다. 책장에 5개의 자리를 만드는 것과 같습니다.

하지만, 더 있습니다! 다양한 유형과 크기의 배열을 선언할 수 있습니다:

var scores [3]int
var temperatures [7]float64
var flags [2]bool

기억하세요, 배열을 특정 크기로 선언하면 그 크기는 변하지 않습니다. 책장을 만드는 것처럼, 만들어진 후에는 자리를 추가하거나 제거할 수 없습니다!

배열 초기화

이제 우리가 배열을 가지고 있으니, 책장에 책을 넣어보겠습니다! 여러 가지 방법으로 초기화할 수 있습니다:

방법 1: 선언 시 초기화

var fruits [3]string = [3]string{"apple", "banana", "cherry"}

여기서 우리는 3개의 특정 과일을 담을 수 있는 과일 바구니를 만듭니다.

방법 2: 축약 선언

colors := [4]string{"red", "blue", "green", "yellow"}

이는 배열을 선언하고 초기화하는 빠른 방법입니다. 칠.color set을 빠르게 정리하는 것과 같습니다.

방법 3: 부분 초기화

var numbers [5]int = [5]int{1, 2, 3}

이 경우, 우리는 처음 3개의 숫자를 지정했습니다. Go는 나머지를 자동으로 0으로 채웁니다. 5일간의 계획을 세웠을 때 처음 3일만 계획한 것과 같습니다.

방법 4: Go에 크기를 맡기기

animals := [...]string{"dog", "cat", "hamster", "fish"}

...를 사용하여 우리는 Go에게 "이 요소의 수를 세어달라"고 합니다. Go는 정확한 수의 요소를 가진 배열을 만듭니다.

배열 요소 접근

이제 배열을 어떻게 사용할까요? 요소를 인덱스를 사용하여 접근합니다. 인덱스는 0에서 시작합니다(처음에는 이상하게 느껴질 수 있지만, 익숙해질 것입니다!):

fruits := [3]string{"apple", "banana", "cherry"}
fmt.Println(fruits[0]) // 출력: apple
fmt.Println(fruits[1]) // 출력: banana
fmt.Println(fruits[2]) // 출력: cherry

책장에서 책을 접근하는 것을 상상해보세요: 첫 번째 책은 위치 0에 있고, 두 번째 책은 위치 1에 있습니다.

요소를 변경할 수도 있습니다:

fruits[1] = "blueberry"
fmt.Println(fruits) // 출력: [apple blueberry cherry]

우리는 바나나를 블루베리로 바꿨습니다!

Go 배열 세부 사항

기본 사항을 다루고 나서, 조금 더 깊이 들어가보겠습니다.

배열 길이

배열의 요소 수를 알아보려면 len() 함수를 사용합니다:

numbers := [4]int{2, 4, 6, 8}
fmt.Println(len(numbers)) // 출력: 4

책장에 몇 권의 책이 있는지 물어보는 것과 같습니다.

배열 반복

주로 배열의 모든 요소를 다루고 싶을 때가 있습니다. for 루프를 사용할 수 있습니다:

colors := [4]string{"red", "blue", "green", "yellow"}
for i := 0; i < len(colors); i++ {
fmt.Printf("Color %d is %s\n", i+1, colors[i])
}

이 outputs:

Color 1 is red
Color 2 is blue
Color 3 is green
Color 4 is yellow

책장에서 각 책의 제목을 읽는 것과 같습니다.

다차원 배열

때로는 데이터를 더 복잡한 방식으로 정리해야 합니다. 여기서 다차원 배열이 등장합니다! 배열의 배열을 생각해보세요:

matrix := [3][3]int{
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
}

이는 3x3 그리드를 만듭니다. 작은 스프레드시트나 틱택토 보드와 같습니다.

다차원 배열의 요소에 접근하려면:

fmt.Println(matrix[1][2]) // 출력: 6

이는 두 번째 행(인덱스 1)과 세 번째 열(인덱스 2)의 요소를 접근합니다.

Go 배열 메서드

Go에서 배열에 수행할 수 있는 일반적인 연산을 아래 표에 나열했습니다:

연산 설명 예제
선언 배열 생성 var arr [5]int
초기화 초기 값 설정 arr := [3]int{1, 2, 3}
접근 특정 요소 가져오기 element := arr[2]
수정 요소 변경 arr[1] = 10
길이 배열 크기 가져오기 len(arr)
반복 요소 반복 for i := 0; i < len(arr); i++ { ... }
복사 새 복사본 생성 newArr := arr

기억하세요, Go는 배열에 대해 push, pop, slice와 같은 내장 메서드를 가지고 있지 않습니다. 더 유연한 연산을 수행하려면 슬라이스를 사용하는 것이 일반적입니다. 슬라이스에 대해 배우는 다음 강의에서 다루겠습니다!

결론

축하합니다! 여러분은 Go 언어에서 배열의 세계로 첫 걸음을 내디디셨습니다. 우리는 배열을 선언하고 초기화하는 방법, 요소에 접근하고 변경하는 방법, 그리고 다차원 배열에 대해 다루었습니다.

Go에서 배열은 고정 크기이기 때문에, 정확한 요소 수를 알고 있을 때 매우 유용합니다. 그들은 신뢰성 있고 변하지 않으며, 언제든지 필요할 때 사용할 수 있습니다.

계속 연습하고, 호기심을 유지하며, 가장 중요한 것은 코딩을 즐기세요! 다음 강의에서는 슬라이스 - 배열의 더 유연한 형제에 대해 탐구할 것입니다. 그때까지, 즐겁게 코딩하세요!

Credits: Image by storyset