Go语言技术文章
-
Go 里把整数拼进响应、日志或协议帧时,strconv.AppendInt 可以直接追加到目标 []byte。本文说明怎样复用缓冲、提前规划容量,并分清中间字符串分配与切片扩容的边界。220 收藏 -
用 Go 的 base64.RawURLEncoding 生成不带等号的 URL 安全令牌,讲清字母表、编码解码、填充兼容和长度错误的处理边界。300 收藏 -
用 Go net/url 解析 URL 查询串,掌握 Query、Values.Get、Has、ParseQuery 在单值、多值、空值和错误处理上的边界。131 收藏 -
用 io.MultiWriter 把文件与 hash.Hash 组合为一个 Writer,单次读取源流即可落盘并计算摘要;通过完整示例解释写入顺序、复制及关闭错误、缓冲与字节层选择,避免返回无效结果。369 收藏 -
用 Go image/draw 按目标尺寸计算居中裁剪框,再将源图区域复制到缩略图画布,并排查边界、偏移与合成模式问题。234 收藏 -
Go 的 image.Decode 会根据已注册的解码器识别 PNG 或 JPEG。本文给出空白导入、格式返回、尺寸预检和文件位置复位的最小写法。231 收藏 -
区分 Go 文件 Write、File.Sync 与 Close 的职责,掌握关键文件写入时的持久化和错误处理顺序。248 收藏 -
Go 使用 archive/tar 解包时,先用 filepath.IsLocal 限制归档成员名,再区分目录、普通文件和链接条目,避免路径穿越与越界写入。230 收藏 -
用 archive/zip 的 FileInfoHeader 和 CreateHeader 保留 ZIP 条目的 Unix 权限、目录类型与可执行位,并说明读取复核、路径安全和跨平台边界。412 收藏 -
用 Go 的 os.File.Truncate 调整文件字节长度,区分缩短、扩展、I/O 偏移不变和 PathError 错误处理,附带可复用的最小示例与回归检查清单。193 收藏 -
Go io.TeeReader 可以在主流程单遍读取时,把同一批字节同步写给记录器或摘要计算器。本文解释无内部缓冲、写入错误转读错误和内存边界,并给出选择清单。454 收藏 -
比较大字节序列时,已有 []byte 就直接使用 bytes.Equal,不必先转换成 string。本文说明它的判断边界、与前缀和排序 API 的区别,以及性能和并发注意事项。211 收藏 -
Go regexp 使用 RE2 语法并保证匹配时间随输入规模线性增长,因此不需要给传统回溯引擎配置超时。本文用输入字节预算、模式编译边界和 FindAll 结果上限控制正则相关资源消耗。350 收藏 -
Go循环拼接怎样减少临时分配?从字节预算、Grow预留和WriteString用法入手,说明结果持有、禁止复制与Reset边界,并给出分配比较方法。299 收藏 -
用 Go httptrace 拆分 DNS、TCP/TLS、连接复用、写请求和首字节耗时,配合完整示例定位 HTTP 客户端慢在解析、建连还是服务端等待。364 收藏