[Go 언어] 초보자 필견 시리즈 1 : 배열과 슬라이스

배열(Arrays)



배열은 연속적인 메모리 영역을 확보하는 데이터 구조입니다.



정의 방법



방법 1



구문:
  var 配列名 [サイズ]

예:
  var a [2]string

방법 2



구문:
    var  配列名  [サイズ]
        = [サイズ]{初期値1, ..., 初期値n} 

예:
    var a [2]string
        = [2]string{"Hello", "Go"}

NOTE: 선언과 동시에 대입한다.

방법 3



구문:
    配列名 := [サイズ]{初期値1, ..., 初期値n} 

예:
    a := [2]string{"Hello", "Go"}

NOTE: 선언과 동시에 대입한다면, 방법 2보다 이쪽이 간결하고 추천.

방법 4



구문:
    配列名 := [...]{初期値1, ..., 初期値n}

예:
    a := [...]string{"Hello", "Go"}

참고 : 배열의 크기를 "..."로 설정하면 컴파일러가 자동으로 요소 수를 계산합니다.

다차원 배열(Multiple Dimension)



다차원 배열 (Multiple Dimension)은
[]의 수를 늘리면 1차원 배열과 같이 정의할 수 있다.

예:
    a := [][]string{
        {"Hello", "Go"},
        {"Hello", "Python"},
    }

요소 스캔(iteration)



방법 1 : len 함수를 이용하여 배열의 크기를 얻습니다.


for i := 0; i < len(array); i++ {
  fmt.Println(array[i])
}

방법 2 : 범위를 사용하여 배열을 스캔.


for index, value := range array{   
    fmt.Println(index, value)
}

요약


  • 배열은 선언 후에 크기를 변경할 수 없습니다. (고정 길이)

  • 미리 데이터 사이즈의 확정하지 않는 데이터에는 적합하지 않습니다.
  • 배열은 기본 같은 유형의 요소를 저장하지만

  • 여러가지 형태를 혼재시키고 싶은 경우는 interface 형태로 초기화합니다.
      array := []interface{}{hello", 10, 2.5}
    

    슬라이스(Slices)



    슬라이스는 가변 길이의 배열과 같은 움직임을하는 데이터 구조입니다.

    정의 방법



    정의 방법은 배열과 비슷하며 크기를 지정하지 않고 선언합니다.

    방법 1



    구문:
    var 名前 []
    

    예:
    var a []string
    

    방법 2



    구문:
    var 名前 [] = []{初期値1, ..., 初期値n} 
    

    예:
    var a []string = []string{"Hello", "Go"}
    

    방법 3



    구문:
    名前 := []{初期値1, ..., 初期値n}
    

    예:
    a := []string{"Hello", "Go"}
    

    방법 4



    구문:
    名前 := make([], 初期長さ ,初期容量)
    

    예:
    a := make([]string, 2, 10)
    

    방법 4는 배열에없는 선언 방법.

    초기 용량은 옵션 인수.

    슬라이스 구성





    슬라이스는 배열에 대한 참조와 같습니다.

    요소 스캔(iteration)



    스캔 방법은 배열과 유사합니다.

    요소 추가(append)



    슬라이스에 새 요소를 추가하려면 Go 내장 append 함수를 사용합니다.

    요소 추가시의 움직임은, 이쪽의 동영상 를 알기 쉽게 보실 수 있으면(자) 생각합니다.

    동영상(YouTube)



    이 기사를 동영상으로보고 싶다면 여기에서 부탁드립니다.

    전 기사

    좋은 웹페이지 즐겨찾기