Go в примери: Обхождане на стойности в канал

В един предишен пример видяхме, как да обхождаме вградени в езика структури от данни с помощта на for и range. Можем да ползваме този правопис и със стойности, получени от канал.

package main
import "fmt"
func main() {

Ще обходим двете стойности в канала опашка.

    опашка := make(chan string, 2)
    опашка <- "едно"
    опашка <- "две"
    close(опашка)

Тук използваме range за да обходим всяка стойност, получена от канала опашка. Понеже затворихме канала, повторението приключва, след последната получена стойност.

    for стойност := range опашка {
        fmt.Println(стойност)
    }
}
$ go run range-over-channels.go
едно
две

Този пример ни показа също, че дори след затварянето на непразен канал, стойностите от него могат да бъдат получени.

Следващ пример: .