Go问答技术文章
-
Go HTTP/1 服务处理流式上传时,如果边读请求体边写响应,默认行为可能让两边互相等待。本文用 ResponseController.EnableFullDuplex 拆开触发条件、最小写法、HTTP/2 差异和超时边界。100 收藏 -
Go 里 iter.Seq 是惰性遍历函数,slices.Collect 会把它完整收集成切片。文章用一个分页数据场景说明如何提前停止、如何估算内存,以及什么时候不该直接 Collect。100 收藏 -
Go 的缓冲 channel 满载后,普通发送会等待消费者。用 select 同时监听 ch <- value 与 ctx.Done(),就能在取消或超时后返回 ctx.Err,避免生产者 goroutine 一直卡住。100 收藏 -
Go context.WithCancel 的父子关系是单向取消传播:父 context 取消会让子 context 和后代一起结束,子 context 取消不会影响父 context 或兄弟节点。本文用代码说明 Done、Err、cancel 和资源释放边界。100 收藏 -
Golang · Go问答 | 3星期前 | 错误处理 · 文件读取 · Go问答 · Go errors.Join Go deferclose Go defer Close错误 Go关闭文件返回值 Go文件读取错误处理
围绕 Go 中 defer 调用 Close 的常见写法,说明如何接住关闭返回值、区分主错误与关闭错误,并处理循环资源释放和 errors.Join。100 收藏