В един предишен пример
видяхме, как да обхождаме вградени в езика структури от
данни с помощта на for и range. Можем да ползваме
този правопис и със стойности, получени от канал.
import "fmt"
func main() {
Ще обходим двете стойности в канала опашка.
опашка := make(chan string, 2)
опашка <- "едно"
опашка <- "две"
close(опашка)
Тук използваме range за да обходим всяка
стойност, получена от канала опашка. Понеже
затворихме канала, повторението приключва, след
последната получена стойност.
for стойност := range опашка {
fmt.Println(стойност)
}
}
$ go run range-over-channels.go
едно
две
Този пример ни показа също, че дори след затварянето на непразен канал, стойностите от него могат да бъдат получени.
Следващ пример: Срочници.