在 Go 中,channel assgiment 是什么意思?
in Go, what does channel assgiment mean?
我有这个代码,
// 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 对此有何保证?
谢谢
通道是引用类型。参见“Are channels passed by reference implicitly”。
(引用类型:切片、映射、通道、指针、函数)
并查看“Go - Pointer to map”。
ch = ch1
只是将ch1
的参考值复制到ch
.
我有这个代码,
// 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 对此有何保证?
谢谢
通道是引用类型。参见“Are channels passed by reference implicitly”。
(引用类型:切片、映射、通道、指针、函数)
并查看“Go - Pointer to map”。
ch = ch1
只是将ch1
的参考值复制到ch
.