【问题标题】:in Go, what does channel assgiment mean?在 Go 中,通道分配是什么意思?
【发布时间】:2015-03-16 20:11:05
【问题描述】:

我有这个代码,

// 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, "\n")
        ch1 := make(chan int)
        go Filter(ch, ch1, prime)
        ch = ch1
    }
}

我试图了解频道分配的含义。例如 ch=ch1, 这是做什么的?深拷贝还是浅拷贝? 对此有何保证?

谢谢

【问题讨论】:

    标签: go


    【解决方案1】:

    通道是一种引用类型。请参阅“Are channels passed by reference implicitly”。
    (引用类型:切片、映射、通道、指针、函数)
    并查看“Go - Pointer to map”。

    ch = ch1 只需将ch1 的引用值复制到ch

    【讨论】:

      猜你喜欢
      • 2013-05-10
      • 1970-01-01
      • 2015-11-03
      • 2015-11-16
      • 2020-11-04
      • 2020-05-18
      • 1970-01-01
      • 1970-01-01
      • 2019-11-03
      相关资源
      最近更新 更多