Go 언어

본문 바로가기
사이트 내 전체검색


Go 언어
Go 언어

1. 배열 사용하기

페이지 정보

작성자 관리자 댓글 0건 조회 2,393회 작성일 19-03-11 19:49

본문

1. 배열 사용하기

배열은 길이가 고정되어 있고, 다른언어와 마찬가지로 배열의 인덱스는 0부터 시작한다.


var 배열명 [길이]자료형


package main

import "fmt"

func main() {

 var a [5]int // int형이며 길이가 5인 배열 선언

 a[2] = 7     // 배열의 세 번째 요소에 7 대입

 fmt.Println(a) // [0 0 7 0 0]

}

배열로 만들 자료형 앞에 [](대괄호)를 붙이고 배열의 길이를 설정한다. 이렇게 생성하면 배열의 요소는 모두 0으로 초기화된다.

​일반 변수와 마찬가지로 :=를 사용하여 var를 생략할 수 있다.


package main

import "fmt"

func main() {

 var a [5]int = [5]int{32, 29, 78, 16, 81} // int형이며 길이가 5인 배열을 선언하고 초기화
 var b = [5]int{32, 29, 78, 16, 81}        // 배열을 선언할 때 자료형과 길이 생략
 c := [5]int{32, 29, 78, 16, 81}           // 배열을 선언할 때 var 키워드, 자료형과 길이 생략

 fmt.Println(a)
 fmt.Println(b)
 fmt.Println(c)

}


중괄호에서 값은 한줄로 나열해도 되고, 여러줄로 나열해도 된다.

배열의 크기에 ...을 사용하면 초기화할 값의 개수에 따라 자동으로 크기가 설정된다.


package main

import "fmt"

func main() {

 a := [5]int{32, 29, 78, 16, 81} // 배열을 생성하면서 값을 초기화

 b := [5]int{

  32,
  29,
  78,
  16,
  81, // 여러 줄로 나열할 때는 마지막 요소에 콤마를 붙임

 }

 c := [...]int{32, 29, 78, 16, 81} // 초기화할 요소가 5개이며 ...을 사용했으므로
                                   // 배열 크기는 5로 설정됨

 d := [...]string{"Maria", "Andrew", "Jonh"} // 초기화할 요소가 3개이며 ...을 사용했으므로
                                             // 배열 크기는 3으로 설정됨

 fmt.Println(a)
 fmt.Println(b)
 fmt.Println(c)
 fmt.Println(d)

}



​다차원 배열 선언하기

자료형 앞에 대괄호를 여러번 사용하면 다차원 배열을 만들 수 있다.

​package main

import "fmt"

func main() {

 a := [3][3]int{

  {1, 2, 3},
  {4, 5, 6},
  {7, 8, 9},

 }

 fmt.Println(a)

}


​배열 순회하기

​배열안의 요소를 차례대로 출력해보겠다.

for 문으로 배열의 길이만큼 반복하면서 요소를 출력한다.

배열의 길이는 len함수로 구한다.

​package main

import "fmt"

func main() {

 a := [5]int{32, 29, 78, 16, 81}

 for i := 0; i < len(a); i++ { // len 함수로 배열의 길이를 구한 뒤 배열의 길이 만큼 반복

  fmt.Println(a[i])

 }

 fmt.Println(a)

}


배열의 길이를 구하지 않고 간단하게 배열의 요소를 가져오려면 for 문에서 range 키워드를 사용한다.

package main

import "fmt"

func main() {

 a := [5]int{32, 29, 78, 16, 81}

 for i, value := range a { // i에는 인덱스, value에는 배열 요소의 값이 들어감

  fmt.Println(i, value)

 }

}

​range 키워드를 사용하면 반복문이 실행 될때마다 배열의 인덱스와 해당 인덱스의 값이 자동으로 변수에 들어온다.

​package main

import "fmt"

func main() {

 a := [5]int{32, 29, 78, 16, 81}

 for value := range a { // value에는 값 대신 인덱스가 들어감

  fmt.Println(value)

 }

}



인덱스 변수는 생략하고, 값 변수만 사용하려면 _(밑줄)을 사용한다.


package main

import "fmt"

func main() {

 a := [5]int{32, 29, 78, 16, 81}

 for _, value := range a { // 인덱스는 생략, value에 배열 요소의 값이 들어감

  fmt.Println(value)

 }

}


배열 복사하기

배열변수는 배열 전체를 뜻하며 첫번째 요소의 포인터가 아니다.

따라서 다음과 같이 배열들 다른 변수에 대입하면 배열 전체가 복사된다.

​package main

import "fmt"

func main() {

 a := [5]int{1, 2, 3, 4, 5}

 b := a // 배열을 대입하면 배열 전체가 복사됨

 fmt.Println(a) // [1, 2, 3, 4, 5]
 fmt.Println(b) // [1, 2, 3, 4, 5]

}



댓글목록

등록된 댓글이 없습니다.


개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.