[Go 언어] 30. 배열의 요소를 순차적으로 방문하기

안녕하세요. 언제나 휴일입니다.

이전 게시글에서는 배열을 선언하는 방법을 살펴보았죠. 이번 게시글에서는 배열의 요소를 순차적으로 방문하는 방법을 알아보기로 합시다.

배열의 요소를 순차적으로 방문하는 방법 중에 배열의 원소 개수를 구한 후에 인덱스를 이용하여 순차적으로 방문하는 방법이 있습니다. 이전 게시글에서 소개했듯이 배열의 원소 개수를 구할 때는 len 함수를 사용합니다.

len(배열명)

다음처럼 배열 이름을 len 함수에 입력 인자로 전달하면 배열의 원소 개수를 얻어올 수 있습니다.

arr := [5]int{12, 34, 23, 56, 34}
var length int
length = len(arr)

그리고 인덱스를 0에서 length보다 작으면 반복하여 각 원소에 접근할 수 있겠죠.

for i := 0; i < length; i++ {
	fmt.Println(i, ":", arr[i])
}

다음은 len 함수로 배열의 원소 개수를 구하여 for 반복문에서 순차적으로 원소들의 값을 출력하는 예제 소스 코드입니다.

// Example 배열 요소를 순차적 방문(len 함수 이용)
package main

import "fmt"

func main() {
	arr := [5]int{12, 34, 23, 56, 34}
	var length int
	length = len(arr)
	for i := 0; i < length; i++ {
		fmt.Println(i, ":", arr[i])
	}
}

실행 결과는 다음과 같습니다.

0 : 12
1 : 34
2 : 23
3 : 56
4 : 34

그리고 for문에서 배열의 각 원소에 원소를 순차적으로 접근하기 위한 방법으로 range 키워드를 제공하고 있습니다.

인덱스변수, 값변수:= range 배열명

“range 배열명”의 연산 결과는 두 개의 값을 반환합니다. 첫번째 값은 인덱스이며 두번째 값은 원소의 값입니다. 다음은 range 키워드를 이용하여 배열의 원소를 순차적으로 접근하여 출력하는 예제 소스 코드입니다.

// Example 배열 요소를 순차적 방문(ragne 키워드 이용)
package main

import "fmt"

func main() {
	arr := [5]int{12, 34, 23, 56, 34}

	for i, value := range arr {
		fmt.Println(i, ":", value)
	}
}

실행 결과는 다음과 같습니다.

0 : 12
1 : 34
2 : 23
3 : 56
4 : 34

만약 “range 배열명”의 연산 결과를 하나의 변수에 대입하면 인덱스만 얻을 수 있습니다.

// Example 배열 요소를 순차적 방문(ragne 키워드 이용)
package main

import "fmt"

func main() {
	arr := [5]int{12, 34, 23, 56, 34}

	for i := range arr {
		fmt.Println(i)
	}
}

실행 결과는 다음처럼 인덱스만 출력합니다.

0
1
2
3
4

만약 인덱스를 생략하고 원소 값만을 얻고자 한다면 인덱스 변수 대신 언더 바(_)를 사용하세요.

_, 값변수:= range 배열명

// Example 배열 요소를 순차적 방문(ragne 키워드 이용)
package main

import "fmt"

func main() {
	arr := [5]int{12, 34, 23, 56, 34}

	for _, value := range arr {
		fmt.Println(value)
	}
}

실행 결과는 다음과 같습니다.

12
34
23
56
34