Go语言技术文章
-
Go 的 encoding/csv Writer 会按字段内容自动决定是否加引号,但不会默认把空字符串写成双引号。本文解释 Comma、UseCRLF、Flush、Error 与全引用编码方案,解决批量导出时的格式兼容问题。112 收藏 -
sync.Cond 出现等待不返回时,先检查共享条件是否由同一把锁保护,再确认 Wait 是否位于 for 循环中。本文用原创 Go 示例拆开 Signal、Broadcast、条件状态与 channel 的适用边界,帮助定位所谓的唤醒丢失。112 收藏 -
本文用同一 Dot API 演示 Go SIMD 与标量实现如何通过构建约束共存,并用强制模拟配置验证回退结果与尾部处理。110 收藏 -
io.Reader 的 Read 允许在返回最后一批数据时同时给出 io.EOF。本文从返回值契约、读取循环、io.ReadFull 和常见误区说明调用方如何避免丢数据与误判结束。110 收藏 -
Golang · Go问答 | 10小时前 | CGO · 垃圾回收 · Go问答 · CGO runtime.SetFinalizer runtime.KeepAlive C资源 显式Close 资源生命周期
runtime.SetFinalizer 只能为持有 C 资源的 Go wrapper 提供不确定的释放兜底,不能替代显式 Close。本文用生命周期状态、cgo 指针规则和 runtime.KeepAlive 说明如何避免提前释放、重复释放与关闭顺序错乱。110 收藏 -
json.RawMessage 本质上是保存原始 JSON 字节的切片,普通赋值只复制切片描述,两个变量仍可能共享底层数组。本文用 Unmarshal 和直接修改两个场景定位别名来源,并给出 bytes.Clone、append 到 nil 切片的深拷贝写法与隔离检查清单。109 收藏 -
GOMEMLIMIT 是 Go runtime 的软内存限制,不是 cgroup 或操作系统的硬性封顶。本文从统计范围、GC 让步机制、运行指标和并发控制四个方面说明超限原因与配置边界。109 收藏 -
Golang · Go问答 | 14小时前 | HTTP · 故障排查 · net/http · Go问答 · 流式响应 · Go FLUSH ResponseController ResponseWriter 代理缓冲 HTTP流式响应
ResponseController.Flush 只负责把 Go 服务端当前可刷新的响应数据向下游推进,并不承诺浏览器或代理立即交付。本文从 ResponseWriter 包装、Flush 错误、响应格式和代理缓冲四条链路定位客户端无数据的原因。108 收藏 -
UDPConn.ReadFrom 没有数据时会持续阻塞。本文用 SetReadDeadline 建立接收时间边界,说明 deadline 的绝对时间语义、循环刷新方式,以及如何区分超时、关闭和真实网络错误。108 收藏 -
Go 的 mail.AddressParser 可通过 mime.WordDecoder.CharsetReader 解析 RFC 2047 自定义字符集显示名。本文给出字符集白名单、UTF-8 转换、单地址与列表解析、错误回退和核对方法。107 收藏 -
Go 模块代理返回 404 和 410 时,命令通常都会按 GOPROXY 顺序回退;真正需要排查的是请求资源、分隔符和其他终止错误。本文用下载命令拆开判断路径。107 收藏 -
Golang · Go问答 | 2天前 | 并发安全 · goroutine · Go问答 · Go结构化并发 runtime/secret并发读取 secret.Do goroutine Go密钥生命周期 WaitGroup敏感数据
runtime/secret 会让作用域内新建的 goroutine 继承秘密模式,但不会替你同步共享切片。本文用结构化并发说明密钥只读共享、worker 独立状态、公开结果复制、取消等待与平台降级的正确边界。107 收藏 -
用 Go unique.Handle 把规范化后的 HTTP 方法与路径组合成可比较身份,演示并发路由注册中的去重方式与适用边界。107 收藏 -
B.Loop 只负责迭代与计时,不会恢复循环外可变状态。切片长度、容量、map 内容或缓冲区会跨轮累积,导致每次操作不再等价。本文用可运行示例区分新建成本与复用成本,并说明重置是否计时。105 收藏 -
用 Go 1.24 的 os.OpenRoot 建立插件目录边界,通过 Root 方法和 Root.FS 读取相对文件,处理路径遍历、符号链接、资源关闭及挂载点等实际限制。104 收藏