Например, у меня есть этот код:
package main
import (
"fmt"
)
func main() {
c1 := make(chan interface{})
close(c1)
c2 := make(chan interface{})
close(c2)
var c1Count, c2Count int
for i := 1000; i >= 0; i-- {
select {
case <-c1:
c1Count++
case <-c2:
c2Count++
}
}
fmt.Printf("c1Count: %d\nc2Count: %d\n ", c1Count, c2Count)
}
Во время работы вывод будет:
c1Count: 513
c2Count: 488
Не знаю, что мы создаем: c1 и c2канал ничего не делая.Почему в блоке select / case c1Count и c2Count могут увеличивать значение?
Спасибо