download2014711 2015-01-18 19:57
浏览 46
已采纳

在Go中,渠道分配是什么意思?

i have this code,

// The prime sieve: Daisy-chain Filter processes.
func main() {
    ch := make(chan int) // Create a new channel.
    go Generate(ch)      // Launch Generate goroutine.
    for i := 0; i < 10; i++ {
        prime := <-ch
        print(prime, "
")
        ch1 := make(chan int)
        go Filter(ch, ch1, prime)
        ch = ch1
    }
}

I am trying to understand what does channel assignment mean. For example ch=ch1, what does this do? Deep copy or shallow copy? what does go guarantee for this?

Thanks

  • 写回答

1条回答 默认 最新

  • dongru3726 2015-01-18 20:06
    关注

    A channel is a reference type. See "Are channels passed by reference implicitly".
    (reference types: slices, maps, channels, pointers, functions)
    And see "Go - Pointer to map".

    ch = ch1 simply copy the reference value of ch1 to ch.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 yolov8边框坐标
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂