Go语言技术文章
-
Go archive/tar 解包稀疏文件时,Header.Size 表示逻辑大小,而 Reader.Read 会把空洞读成 NUL 字节。本文说明 io.Copy 为什么会让实际占用变大,如何识别 GNU/PAX 稀疏格式,以及普通解包与保留空洞时的处理边界。133 收藏 -
介绍 Go archive/tar 识别 GNU 与 PAX 稀疏文件条目的方法,解释逻辑大小、洞区读取行为和 Writer 不支持稀疏写入的边界。125 收藏 -
解释 Go archive/tar 中 PAX 扩展记录的合并和写入优先级,定位 Header 重建导致的字段丢失,并给出可复查的保留写法。188 收藏 -
介绍 Go archive/tar 使用 Header.PAXRecords 写入自定义 PAX 扩展字段的方法,说明命名空间、正文长度、读取验证和兼容性边界。366 收藏 -
Go tls.Config可以并发复用,但传给TLS函数后不得继续修改。本文说明只读快照、Clone浅复制、可变切片隔离和证书配置热切换的安全组织方式。214 收藏 -
Go 目录读取要同时处理排序、批量和内存边界:os.ReadDir 适合一次读取并按文件名排序,File.ReadDir(n) 适合固定批次消费但返回目录顺序。本文给出两种写法、EOF 处理、资源释放和全局排序方案。156 收藏 -
Go net/http读取请求体超时应分层配置:服务器限制请求头,处理器按接口设置请求体截止时间,再配合MaxBytesReader限制体积。本文给出可复用写法和错误边界。261 收藏 -
Go标准库flag可通过自定义Value累积同名参数。本文实现顺序保留的字符串切片类型,说明Set调用、零值String、FlagSet错误处理与参数终止边界。104 收藏 -
Go io/fs返回的错误通常带有PathError上下文,使用errors.Is区分文件不存在、权限拒绝和非法路径,再把每类错误映射到明确的业务动作。259 收藏 -
Go HTTPS 客户端同时访问公网和企业内网服务时,可先复制系统根证书池,再追加业务 PEM 根证书,并通过 tls.Config.RootCAs 交给 HTTP Transport。本文给出配置代码、参数边界和排查清单。375 收藏 -
Go 反射中直接调用 reflect.Value.Elem 可能因 zero Value、nil interface 或错误 Kind 触发 panic。本文用 IsValid 与 Kind 建立安全解引用边界,并给出可复用的错误返回写法。377 收藏 -
Golang · Go教程 | 3星期前 | 日志 · 标准库 · 编码 · Go教程 · 二进制日志 Go encoding/hex hex.EncodeToString hex.Encode 十六进制编码
Go 中把请求 ID、摘要或协议字段写入日志时,直接输出 []byte 容易出现不可见字符。本文用 encoding/hex 给出可读编码、预分配、解码错误和长度边界的实践清单。399 收藏 -
讲清 Go errors.Join 组合错误的树形关系,以及如何用 errors.Is 和 errors.As 保留单项错误匹配、类型提取和边界判断能力。374 收藏 -
用 Go os.CreateTemp 在目标目录创建 0600 临时文件,完成写入与同步后再 Rename 替换目标,覆盖清理、并发、权限和跨平台边界。268 收藏 -
高频循环里反复调用time.After会让计时器无法主动取消。本文用可复用的time.NewTimer演示Stop、排空、Reset和退出清理,并说明Go 1.23前后的Timer语义差异。481 收藏