저작권 안내
- 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
- 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.
배열 사용하기
이재홍 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 공유는 허용합니다.