Go by Example: [11] Range
Range
range
키워드는 복합데이터구조(배열,슬라이스, 맵등)의 데이터를 나열할때 유용하게
사용할 수 있는 키워드입니다.
이미 배운 이러한 데이터구조의 항목을 나열하는 것으로 사용법을 익히도록 하겠습니다.
package main
import "fmt"
func main() {
nums := []int{2, 3, 4} // [1]
sum := 0
for _, num := range nums {
sum += num
}
fmt.Println("sum:", sum)
for i, num := range nums { // [2]
if num == 3 {
fmt.Println("index:", i)
}
}
kvs := map[string]string{"a": "apple", "b": "banana"} // [3]
for k, v := range kvs {
fmt.Printf("%s -> %s\n", k, v)
}
for i, c := range "go" { // [4]
fmt.Println(i, c)
}
}
range
키워드를 슬라이스에 사용하는 예제입니다. 배열 또한 사용법이 동일합니다.range
키워드를 배열과 슬라이스에 사용할때에도 인덱스와 값을 제공합니다.
상기의 코드에서는 인덱스값이 필요없고 값만 필요한 경우여서_
변수를 이용해서
인덱스값을 버렸습니다.
때로는 혹은 자주 배열과 슬라이스의 인덱스값이 연산에 필요할 때가 있습니다.range
키워드를 맵의 키/값 항목에 사용해서 각 요소에 순차적으로 접근합니다.range
키워드는 유니코드의 각 문자를 열거할때 사용할 수 있습니다.
유니코드글자 한글자는rune
타입에 저장되는데, 문자열에서의 인덱스값을 처음으로
반환하고,rune
형태의 글자 자체를 두번째로 반환합니다.
실행하면 다음과 같습니다.
$ go run range.go
sum: 9
index: 1
a -> apple
b -> banana
0 103
1 111