go-array

kyunhyun94·2021년 12월 30일

👩🏻‍🎓Array

🌱배열

var a [5]int // int형이며 길이가 5인 배열 선언
a[2] = 7     // 배열의 세 번째 요소에 7 대입
fmt.Println(a) // [0 0 7 0 0]
  • 배열로 만든 자료형 앞에 [] 을 붙이고 배열의 길이를 설정
  • 배열을 생성하면서 값을 초기화 하려면 다음과 같이 자료형 뒤에 {}를 붙이고 값을 나열
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 키워드, 자료형과 길이 생략
  • 중괄호에서 값은 한졸로 나열해도 되고 여러줄로 나열해도 된다
  • 배열의 크기에 ...을 사용하면 초기할 값의 개수에 따라 자동으로 크기설정
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으로 설정됨

💯다차원 배열

  • 자료형 앞에 대괄호를 여러 번 사용하면 다차원 배열을 만들 수 있다. 다음은 2차원 배열을 만들고 값을 초기화
a := [3][3]int{
	{1, 2, 3},
	{4, 5, 6},
	{7, 8, 9},
}

🌱배열 순회

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

for i := 0; i < len(a); i++ { // len 함수로 배열의 길이를 구한 뒤 배열의 길이 만큼 반복
	fmt.Println(a[i])
}
32
29
78
16
81

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

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

for value := range a { // value에는 값 대신 인덱스가 들어감
	fmt.Println(value)
}
0
1
2
3
4
a := [5]int{32, 29, 78, 16, 81}

for _, value := range a { // 인덱스는 생략, value에 배열 요소의 값이 들어감
	fmt.Println(value)
}
32
29
78
16
81

🌱배열 복사

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]
[1 2 3 4 5]
[1 2 3 4 5]
profile
일하기싫어

0개의 댓글