【发布时间】:2019-11-27 13:09:55
【问题描述】:
在 golang 中,当我们需要等待某事完成时,我们会使用通道。
示例:
done := make(chan struct{})
go func() {
// ...
close(done)
}()
<-done
但是,另一方面,chan interface{} 也适用于这种情况。
那么,chan struct{} 和 chan interface{} 有什么区别?
示例2:
done := make(chan struct{})
go func() {
// ...
done <- struct{}{}
}()
<- done
在其他情况下,如果不关闭 goroutine 中的通道而不是发送对象给它。
在goroutine中会创建一个对象,但是如果使用chan interface{},可以将nil对象发送到channel。
使用chan struct{}会更好吗?
【问题讨论】:
标签: go