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 求帮我调试一下freefem代码
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图