Go语言技术文章
-
QueryUnescape 遇到不完整或非十六进制的百分号转义时会返回 EscapeError。本文说明如何保留原始值、定位坏片段、理解加号语义,并处理 ParseQuery 的部分成功结果。292 收藏 -
Go 的 net.Listener 接口没有 File 方法。本文说明怎样断言到 TCPListener 或 UnixListener,使用 File 导出 os.File 副本,并区分 SyscallConn、资源所有权和平台边界。292 收藏 -
Golang · Go问答 | 3星期前 | 性能优化 · bufio · Go问答 · Go write FLUSH bufio.Writer available buffered NewWriterSize
Go bufio.Writer 的缓冲区大小应围绕写入粒度、并发量和内存预算选择。本文用 NewWriterSize 设置容量起点,说明 Buffered、Available、Size 的观察方式,并把 Flush、Close 和错误处理放入完整的资源边界。292 收藏 -
区分tar硬链接与符号链接的目标语义,解释前向引用失败原因,给出延迟依赖解析组件,说明缺失目标、循环依赖、创建错误及接口兼容策略。292 收藏 -
Go 的 iotest.TimeoutReader 专门用于测试 Reader 的超时分支:有限数据读完后,第二次无数据读取返回 iotest.ErrTimeout,后续读取又恢复成功。本文用一个小测试说明调用顺序、断言方式和常见边界。292 收藏 -
Go ticker 不 Stop 是否一定导致资源泄漏,要区分 Go 版本、ticker 引用、后台 goroutine 和业务任务生命周期。本文给出跟随任务退出的写法与排查思路。292 收藏 -
Go Zap SugaredLogger 的 Infow、Errorw 等结构化日志方法接收可变键值参数。参数数量为奇数时,开发环境会触发 panic,生产环境会记录错误并跳过孤立键;本文给出边界检查、zap.Field 和排查字段丢失的实用写法。292 收藏 -
Paho MQTT Go 要在 ClientOptions 上配置遗嘱消息,并在 Connect 前设置主题、载荷、QoS 与 retained。本文用运维场景说明配置、取舍、回滚和异常断线排查。292 收藏 -
Go CSV 变长记录可设置 FieldsPerRecord=-1,再限定列数范围、必填值、字段长度与记录数。本文给出总字节预算加一字节识别超限的示例,并解释多行字段、复用切片与提交边界。292 收藏 -
reflect.TypeFor 只负责获取泛型类型的 reflect.Type,受限目录读取应交给 Go 1.24 的 os.OpenRoot 与 os.Root.Open。本文把两者组合成一个可复用的相对路径读取示例,并说明版本、路径和资源关闭边界。292 收藏 -
go/constant 的 ToInt 不是向零截断函数,而是精确可表示性转换。本文用 3/2、6/2、浮点值和复数说明为什么非整数有理数会得到 Unknown,以及需要截断时如何把舍入责任放回业务层。292 收藏 -
Go 的 csv.Reader 默认会用第一条记录的字段数约束后续行,遇到缺列或多列就返回 ErrFieldCount。本文从故障现场、根因和修复动作出发,说明如何允许不定列数,并把缺列、额外列和真正的 CSV 格式错误分开处理。291 收藏 -
Go 的 image.Image 不要求调用方先知道图片一定是 Gray 还是 RGBA。本文从 ColorModel 与 At 出发,说明怎样统一读取像素、处理预乘 alpha,并在确实需要时转换成稳定的 Gray、RGBA 或 NRGBA 类型。291 收藏 -
Go HTTP 服务端客户端断开后仍有工作运行,重点检查 r.Context 是否传到阻塞操作。本文对比 CloseNotifier、Background 与 Request.Context,给出迁移写法、回归边界和异步任务取舍。291 收藏 -
通过包装Go RoundTripper,在独立Header副本中注入Context追踪标识,保留底层响应与错误,并明确并发、Body和重定向目的端的处理边界。291 收藏