Recommanded Free YOUTUBE Lecture: Learning and Hacking VPC

예제로 살펴보는 Go : Range

range는 배열, map, 슬라이스와 같은 다양한 데이터 스트럭처로부터 데이터를 순환하면서 가져오기 위해서 사용한다.
package main
import "fmt"
func main() {
nums := []int{1,2,3}
sum :=0
for _, num := range nums {
sum += num
}
fmt.Println("Sum : ", sum)
for i, num := range nums {
if num == 3 {
fmt.Println("index : ", i)
}
}
kvs := map[string]string{"a": "apple", "b":"banana"}
for k, v:=range kvs {
fmt.Printf("%s -> %s\n", k, v)
}
for i, c := range "go" {
fmt.Println(i, c)
}
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
6~11 슬라이스 nums의 값을 range로 가져와서 더하는 코드다. 배열 역시 같은 방식으로 값을 가져올 수 있다. range를 이용하면 두 개의 값을 반환한다. 첫번째 값은 key이고 두번째 값은 value다. 따라서 num 에는 슬라이스의 값이 저장된다.

13 ~ 17 배열과 슬라이스의 경우 range의 첫번째 값으로 인덱스(index)가 반환된다. 0부터 +1씩 증가할 것이다.

20 ~ 22 키와 값을 모두 출력하고 있다.

range는 string도 순환 할 수 있다. 이 경우 첫번째 값은 인덱스가 되고, 두번째 값은 rune이 된다. rune은 Go에서 지원하는 데이터타입의 하나로 UCS-4(혹은 UTF-32라고 부르기도 한다.) 한 글자를 나타내는 타입이다.

다음 예제 : Function