invalid operation: range ch (receive from send-only type chan<- int)

package main import (    "fmt"    "os"    "os/signal"    "syscall")// 向chan 发送数据,只能向chan里写数据func producters(factor int,c chan<- int)  {    for i:=1; i<10;i++  {        c<- factor * i    }}// 承受参数,// 只能取channel中的数据,千万不要写成chan<-// 不然会报错:// ./producersAndConsumers.go:24:9:// invalid operation: range ch (receive from send-only type chan<- int)func consumers(ch <-chan int)  {    for v:=range ch  {        fmt.Println("reev:",v)    }}func main()  {     var status chan int    if status == nil {        fmt.Println("未初始化的chan 值是nil")    }    status = make(chan int)    status <- 1    status <- 2    // 如果塞值超过 设置的chan 缓冲值,或者是个无缓冲的chan,当超过容量就回呈现死锁     ch:=make(chan int,10)    go producters(2,ch)    go producters(3,ch)    go consumers(ch)      // Ctrl+C 退出    sig := make(chan os.Signal, 1)    signal.Notify(sig, syscall.SIGINT, syscall.SIGTERM)    fmt.Printf("quit (%v)\n", <-sig)}