这段代码为什么生成的是随机的0和1?

package main
import "fmt"

func main() {
    ch := make(chan int , 1)
    j := 0
    for {
        select {
            case ch <- 0:
            case ch <- 1:
        }
        i := <-ch

        if(j>10){
            break;
        }
        j++;
        fmt.Println("Value recevied:", i)
    }

}

我的理解是循环中每次向 ch 中写入数据 ch 有可能是阻塞的,这种情况下 ch 的缓冲区是是1,
但是我把 ch 缓冲区长度改为 10 ch := make(chan int , 10) 好像也并没有用,还是随机的

查看回复