package main
import "fmt"
func main() {
// queue kanaliga 2 ta qiymat yuboramiz
queue := make(chan string, 2)
queue <- "one"
queue <- "two"
close(queue)
// range kanalga kelayotgan har bir element ustida aylanadi
// Kanal yuqorida yopilgani uchun, 2 ta elementdan keyin iteratsiya tugaydi
for elem := range queue {
fmt.Println(elem)
}
}
Terminalda bajarish:
$ go run range-over-channels.go
one
two
Ushbu misolda bo'sh bo'lmagan kanalni yopish mumkinligi va undagi qolgan qiymatlar baribir qabul qilinishini ham ko'rdik.