가장 빨리 만나는 Go 언어 Unit 21.1 배열 순회하기

저작권 안내
  • 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
  • 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.

배열 사용하기

이재홍 http://www.pyrasis.com 2014.12.17 ~ 2015.02.07

배열 순회하기

이제 배열안의 요소를 차례대로 출력해보겠습니다. for 반복문으로 배열의 길이만큼 반복하면서 요소를 출력합니다. 여기서 배열의 길이는 len 함수로 구할 수 있습니다.

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 키워드를 사용합니다.

  • for 인덱스, 값 := range 배열 { }
a := [5]int{32, 29, 78, 16, 81}

for i, value := range a { // i에는 인덱스, value에는 배열 요소의 값이 들어감
	fmt.Println(i, value)
}
실행 결과
↓ 인덱스 변수 i의 값
0 32
1 29
2 78
3 16
4 81

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

여기서 우리는 배열 요소의 값만 출력하려고 했는데 인덱스 변수 i까지 함께 출력해버렸습니다. 하지만 다음과 같이 인덱스 변수를 생략하면 첫 번째 리턴값인 인덱스만 들어가므로 주의합니다.

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

이처럼 range가 생성하는 인덱스 변수 자리를 밑줄 문자로 대신합니다. 그리고 두 번째 리턴값은 올바르게 값 변수에 들어갑니다.

Go 언어는 결괏값을 여러 개 리턴할 수 있는 특징이 있습니다. 따라서 결괏값을 모두 받으려면 변수 개수를 맞춰주어야 하고, 변수 없이 개수만 맞출때 밑줄 문자를 사용하게 됩니다. 리턴값에 대해서는 'Unit 24 함수 사용하기'에서 자세히 설명하겠습니다.


저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.

Published

2015-06-01