[go] 반복문(for 문)에서의 범위(range) 활용하기

Go 언어에서 반복문을 사용할 때, 데이터 컬렉션을 순회하거나 특정 동작을 여러 번 수행할 수 있는데, for 문과 range 키워드를 활용하여 간편하게 작성할 수 있습니다.

range 키워드는 다양한 데이터 구조체를 순회하며 요소를 하나씩 반환할 수 있습니다. 이번 포스트에서는 Go 언어의 for 문에서 range를 활용하는 방법에 대해 살펴보겠습니다.

배열 또는 슬라이스 순회하기

아래의 예제는 배열 또는 슬라이스를 순회하면서 각 요소를 출력하는 간단한 코드입니다.

package main

import "fmt"

func main() {
    arr := []int{1, 2, 3, 4, 5} // 슬라이스 선언

    for index, value := range arr {
        fmt.Printf("인덱스: %d, 값: %d\n", index, value)
    }
}

위 코드에서 range 키워드는 배열(배열 또는 슬라이스)의 각 요소를 순회하면서, 순회 중인 요소의 인덱스와 값을 indexvalue 변수에 할당합니다.

맵 순회하기

맵을 순회할 때에도 range 키워드를 사용하여 각 키와 값 쌍에 접근할 수 있습니다.

package main

import "fmt"

func main() {
    mp := map[string]int{"one": 1, "two": 2, "three": 3} // 맵 선언

    for key, value := range mp {
        fmt.Printf("키: %s, 값: %d\n", key, value)
    }
}

위 코드에서 range 키워드를 사용하여 맵의 각 키와 값에 순차적으로 접근하고, keyvalue 변수에 할당하여 활용할 수 있습니다.

문자열 순회하기

문자열을 순회하려면, 문자열을 룬(rune)으로 분리한 후에 range를 활용할 수 있습니다.

package main

import "fmt"

func main() {
    str := "Hello, world!" // 문자열 선언

    for index, char := range str {
        fmt.Printf("인덱스: %d, 문자: %c\n", index, char)
    }
}

위 코드에서는 range를 사용하여 문자열을 룬 단위로 순회하며, 각 룬의 인덱스와 값을 출력합니다.

range 키워드를 활용하여 다양한 데이터 구조체를 순회하면 코드를 간결하게 작성할 수 있고, 반복 작업을 보다 효율적으로 처리할 수 있습니다.

이상으로 Go 언어에서 for 문과 range 키워드를 활용하여 다양한 데이터 구조체를 순회하는 방법에 대해 알아보았습니다.

참고 문헌: https://gobyexample.com/range