如果我从不检查其状态,是否可以永久打开Go通道(从不关闭通道)?它会导致内存泄漏吗?以下代码可以吗?
func (requestCh chan<- Request) GetResponse(data RequestData) Response {
reply := make(chan Response)
requestCh <- Request{data: data, replyCh: reply}
return <-reply
}
Run Code Online (Sandbox Code Playgroud)
上面已经很好地介绍了这一点,但是我发现A Tour of Go中的以下内容非常清楚,其中还给出了何时进行的示例close:
另请注意:通道不像文件;它不像文件。您通常不需要关闭它们。仅当必须告诉接收者没有更多值到来时才需要关闭,例如终止循环
range。
| 归档时间: |
|
| 查看次数: |
32088 次 |
| 最近记录: |