Range Over Channels

Range over Channels->채널에서의 Range #

// [이전](/gobyexample/range) 예제에서 우리는 `for`와 `range`가 기본 자료구조에서 어떻게 순회하는지 살펴보았습니다.

package main

import "fmt"

func main() {

	// `queue` 채널에 있는 2개의 값을 순회 해보겠습니다.
	queue := make(chan string, 2)
	queue <- "one"
	queue <- "two"
	close(queue)

	// 이 `range`는 `queue`로부터 수신된 각 원소들을 순회합니다.
	//  위에서 채널을 `종료(close)`했기 때문에 이 순회 루프는 2개의 원소를 받으면 종료됩니다.
	for elem := range queue {
		fmt.Println(elem)
	}
}
$ go run range-over-channels.go
one
two

# 이 예제 또한 비어있지 않은 채널을 닫아도 채널에 남아있는 값들은 수신할 수 있다는걸 보여주고 있습니다.