11.1. 프로그램언어 고(Go)의 배열 선언과 초기화

프로그램언어 고(Go)의 배열 선언 방법

고(Go)언어의 배열 선언 방법에 대해 설명 드리겠습니다.

고(Go)언어에서 배열을 선언하는 방법은 크게 두 가지입니다.

// 배열 리터럴을 사용하는 방법 
arr := [5]int{1, 2, 3, 4, 5}

// 배열 타입을 선언하고 만들기 
var arr [5]int
arr[0] = 1
arr[1] = 2
arr[2] = 3 
arr[3] = 4
arr[4] = 5

위의 예제코드를 보면 알 수 있듯이,

첫 번째는 배열 리터럴을 사용하는 방법으로 배열을 초기화한다는 의미입니다.

두 번째는 배열의 타입과 길이를 먼저 선언한 후에 요소를 하나씩 초기화하는 방법입니다.

배열을 선언할 때는 대괄호 안에 요소의 개수를 명시해야 합니다. 위 예제의 경우 5개의 int형 요소를 가진 배열이 선언되었습니다.

배열 리터럴을 사용하는 것이 보편적인 방법이며, 코드도 간결합니다.

다만 요소를 나중에 초기화하고 싶다면 배열 타입 선언 후 초기화 방법을 사용하면 됩니다.

배열을 다룰 때 주의할 점은 배열의 길이가 고정되어 있다는 것입니다.

따라서 동적인 크기 조정이 필요하다면 슬라이스를 사용하는 것이 좋습니다.

이상으로 고(Go)언어의 배열 선언 방법에 대한 설명을 드렸습니다.

추가로 궁금하신 점이 있다면 질문 부탁드립니다.

프로그램언어 고(Go)의 배열 값 초기화 방법

고(Go)언어의 배열 값 초기화 방법을 설명드리겠습니다.

고(Go)언어에서 배열을 정의할 때 크기를 지정하고 값을 초기화할 수 있습니다.


package main

import "fmt"

func main() {

  // 크기가 3인 정수형 배열 선언과 0으로 초기화
  var arr [3]int = [3]int{0, 0, 0}
  
  // 크기 3, 값 1, 2, 3 으로 초기화
  arr = [3]int{1, 2, 3} 

  fmt.Println(arr)
}

위의 예제에서 볼 수 있듯이 배열을 선언과 함께 크기와 값을 지정하여 초기화할 수 있습니다.

배열의 크기는 []안에 타입 뒤에 지정합니다. 예를 들어 [3]int는 크기가 3인 정수형 배열입니다.

값 초기화는 중괄호 {} 안에 값을 나열합니다. 배열의 크기와 초기화에 전달하는 값의 개수가 일치해야 합니다.

따라서 [3]int{1,2,3}과 같이 크기가 3이면서 1,2,3으로 값을 초기화하는 것이 가능합니다.

배열을 선언만 하고 초기화하지 않으면 기본값으로 초기화됩니다. 예를 들어 정수형 배열은 0, 문자열 배열은 “” 과 같이 초기화됩니다.

만약 배열을 선언과 동시에 초기화하지 않고 나중에 초기화하고 싶다면 아래와 같이 할 수 있습니다.


package main

import "fmt"

func main() {

  //크기가 3인 배열 선언
  var arr [3]int
  
  //초기화
  arr[0] = 1 
  arr[1] = 2
  arr[2] = 3

  fmt.Println(arr)  
}  

위와 같이 배열이 선언된 이후에 인덱스를 사용하여 값을 하나씩 지정할 수 있습니다.

인덱스는 0부터 시작하므로 arr[0]이 첫 번째 값이 됩니다.

이렇게 고(Go)언어의 배열 선언과 값 초기화에 대한 사항을 살펴보았습니다.
배열은 프로그래밍에서 자주 사용되므로 값 초기화 방법은 잘 알아두어야 할 것 같습니다.

더 자세한 내용이 궁금하시다면 공식 문서나 다른 자료를 참고해주시기 바랍니다.

프로그램언어 고(Go)에서의 배열 크기 변경 방법

고(Go)언어에서 배열의 크기를 변경하는 방법을 설명드리겠습니다.

고(Go)언어에서는 배열의 크기를 동적으로 변경할 수 없습니다. 배열은 선언 시 크기가 정적으로 결정되기 때문입니다.

그래서 배열의 크기를 변경하고 싶다면, 새로운 배열을 만들고 기존 배열의 요소를 복사해야 합니다.


package main

import "fmt"

func main() {

    // 원래 배열
    orig := [3]int{1, 2, 3}

    // 원래 배열보다 큰 새 배열
    new := make([]int, 5)

    // 원래 배열 요소를 새 배열에 복사 
    copy(new, orig[:])

    // 새 배열 출력
    fmt.Println(new) // [1 2 3 0 0]
}

위 예제에서 볼 수 있듯이,

1. 새 배열을 make() 함수로 생성합니다.
2. copy() 함수를 사용해 기존 배열의 요소를 새 배열로 복사합니다.
3. 이제 크기가 5인 new 배열을 사용할 수 있습니다.

따라서 고(Go)언어에서 배열의 크기를 동적으로 늘리고 싶다면, 새 배열을 만들고 데이터를 복사하는 방법을 사용하시기 바랍니다.

배열의 크기를 줄이고 싶다면 slice를 사용하는 것이 좋습니다. slice는 배열과 달리 동적인 크기 변경이 가능합니다.

프로그램언어 고(Go)에서의 배열 타입 지정

프로그램언어 고(Go)에서 배열을 선언할 때, 배열의 타입을 명시해주는 것이 좋습니다. 이는 배열이 저장할 데이터의 타입을 정의하기 위함입니다.

예를 들어,

var arr1 [5]int
var arr2 [10]string

와 같이 선언하면, arr1은 int 타입의 데이터를 5개 저장할 수 있는 배열이 되고, arr2는 string 타입의 데이터를 10개 저장할 수 있는 배열이 됩니다.

여기서 중요한 점은 배열의 길이도 함께 정의를 해 주어야 한다는 것입니다. 위 예에서 arr1은 길이가 5인 배열, arr2는 길이가 10인 배열로 정의되었습니다.

만약 배열의 타입을 정의하지 않으면, Go 언어의 특성 상 interface{} 타입으로 선언되어 모든 타입의 데이터를 저장할 수 있게 됩니다.

var arr3 [5]interface{} 

이와 같이 선언한 배열은 int, string 등 아무 타입의 데이터든 저장할 수 있지만, 타입 안정성의 측면에서는 바람직하지 않습니다.

따라서 Go에서는 가능하다면 항상 배열을 선언할 때 타입을 명시하여 사용하는 것이 권장됩니다. 이를 통해 여러 가지 버그를 예방할 수 있고, 코드 가독성도 높아집니다.

배열 선언 시 타입을 정의하는 것은 Go 프로그래밍의 기본 중 하나이므로 꼭 숙지하시기 바랍니다.

프로그램언어 고(Go)에서의 배열 요소 접근 방법

프로그램언어 고(Go)에서 배열 요소에 접근하기 위해서는 배열 이름 뒤에 대괄호[]를 사용하고 그 안에 인덱스 번호를 적어주시면 됩니다.


package main

import "fmt"

func main() {

    // 문자열 배열 선언
    fruits := [4]string{"사과", "바나나", "오렌지", "망고"}

    // 첫 번째 요소 출력
    fmt.Println(fruits[0]) // "사과"

    // 두 번째 요소 출력
    fmt.Println(fruits[1]) // "바나나"

    // 세 번째 요소 출력
    fmt.Println(fruits[2]) // "오렌지"

    // 네 번째 요소 출력
    fmt.Println(fruits[3]) // "망고"
}

위의 예제코드에서 보시다시피 배열 fruits가 선언되어 있고, fruits 배열 뒤에 대괄호[]를 사용하여 인덱스 번호를 지정하고 있습니다.

Go언어에서 배열의 인덱스는 0부터 시작하므로 fruits[0]은 배열의 첫 번째 요소인 “사과”를, fruits[1]은 두 번째 요소인 “바나나”를 가리킵니다.

이처럼 프로그램언어 Go에서 배열 요소에 접근하기 위해서는 배열 이름 뒤 대괄호[] 안에 원하는 인덱스 번호를 적어주시면 됩니다.

인덱스 번호를 지정할 때에는 배열의 크기를 벗어나지 않도록 주의하시기 바랍니다. 위 예제의 fruits 배열은 4개의 요소로 선언되어 있기 때문에 인덱스는 0부터 3까지만 접근 가능합니다.

Leave a Comment