Go语言技术文章
-
在批处理拼接长字符串时,先按字节估算固定文本、记录和分隔符的总量,再调用 strings.Builder.Grow 预留容量。本文用一个可复用示例说明 Len、Cap、String、Reset 与 UTF-8 估算边界。306 收藏 -
使用 strings.Builder 构造长字符串时,先校验空输入,再按片段和分隔符的字节数估算容量并调用 Grow。本文用一个可复用示例说明错误返回、Len、Cap、Reset 与 Builder 生命周期边界。458 收藏 -
在 Go 批处理循环中复用 bytes.Buffer:用 Reset 清空长度、用 Grow 预留稳定容量,并处理 Bytes 别名与异常大容量,避免旧内容残留和不必要的分配。220 收藏 -
用完整 Compose 示例按字节估算 strings.Builder 容量,提前检查输出预算后调用 Grow,说明中文长度、分隔符、追加容量语义和不预留时的回退方法。481 收藏 -
用一个批量读取小项目说明 Go bytes.Buffer.Reset 怎样在复用缓冲区时清掉旧内容,如何区分空输入与真实读取错误,以及 Bytes 返回切片的生命周期边界。307 收藏 -
Go bytes.Buffer 复用时要先 Reset,清空当前未读内容并保留底层存储。本文用一个批量摘要小示例说明旧内容残留、Len 与 Cap、Bytes 切片生命周期和并发边界。338 收藏 -
用 os.DirFS 和 fs.WalkDir 固定文件系统边界,直接消费相对路径完成 Go 文件批处理,并说明路径转换、DirEntry、错误处理、排序和符号链接的性能边界。444 收藏 -
用 fs.Sub 与 fs.WalkDir 保留相对目录路径,给出 ListRelative 完整示例,区分空输入、空目录、不存在的根与中途访问错误,并保留可识别的错误链。138 收藏 -
用 os.DirFS 和 io/fs.WalkDir 遍历一个目录,保留 Go 文件系统约定的相对路径;本文从根目录、回调错误、普通文件筛选和 filepath 转换几个体验点说明如何写成可复用的小函数。237 收藏 -
Go os.CopyFS 可以直接把 embed.FS 这样的嵌入文件系统复制到磁盘。本文从批处理场景说明如何减少手写遍历、整文件读取和重复临时对象,并处理已存在文件、权限错误与复制边界。453 收藏 -
Go os.CopyFS 可以把 embed.FS 或其他 fs.FS 的目录树复制到磁盘,但不会覆盖已有文件。本文围绕空输入、fs.Sub、fs.ErrExist 和首个底层错误,整理一套能保留错误边界的复制写法。141 收藏 -
Go 1.24 引入的 os.Root 可以把文件访问限制在一个目录树内。本文用批处理场景说明如何复用 Root、直接传入相对路径并及时关闭文件,在保留越界和符号链接边界的同时减少调用层反复拼接路径与建立根句柄的额外工作。113 收藏 -
用 embed.FS、fs.Sub 与 os.CopyFS 封装默认资源复制函数,附完整 Go 示例和准备命令,说明目录层级、同名文件冲突、错误链、部分完成及实际工具中的适用范围。414 收藏 -
用 Go 1.24+ 的 os.OpenRoot 和 Root.Open 封装根目录内文件读取,讲清 ../ 路径、符号链接、错误包装和资源关闭边界。477 收藏 -
Go os.Root 适合在固定根目录内打开可能来自外部的相对路径。本文用一个小型读取函数说明空字符串为何要单独处理、怎样拒绝越界路径,以及如何用 %w、errors.Is 和 errors.As 保留可判断的错误边界。476 收藏