-
Go os.File.WriteString 适合把字符串直接写入文件,但仍要检查返回的字节数和错误。本文从打开模式、资源关闭、短写判断和 io.WriteString 的通用写法说明如何安全处理文本写入。
-
Go time.AfterFunc 会在延迟到期后异步执行回调。本文说明如何保存返回的 *time.Timer、在回调开始前调用 Stop、判断 Stop 的返回值,并处理取消与回调并发时的资源边界。
-
Go time.Time.AppendFormat 会把时间按 layout 追加到已有字节切片。本文用 -07:00、Z07:00 和 RFC3339 说明时区偏移布局、Location 来源、UTC 的 Z 表示以及常见误区。
-
用 Go archive/zip.FileHeader.SetMode 把文件模式写入 ZIP 条目,配合 CreateHeader 创建归档,并说明解压端读取权限、Unix 元数据和跨平台边界。
-
Go compress/zlib.Reset 可以在保持压缩级别和字典配置的前提下切换输出写入器,适合批量处理多个独立数据块。本文说明 Close、Flush、Reset 的边界,以及 bytes.Buffer 结果复制与所有权管理方法。
-
Go io/fs.Sub 可以从已有 fs.FS 派生一个只看到指定子目录的新文件系统视图。本文用 fstest.MapFS 说明路径前缀、根目录、错误处理和 embed.FS 迁移时的实用边界。
-
Go filepath.Split 会在最后一个操作系统路径分隔符后拆出目录和文件名,并保留目录部分的分隔符。本文用一个小程序说明常见输入、末尾分隔符、连续分隔符,以及它和 filepath.Dir、filepath.Base 的区别。
-
围绕 os.UserCacheDir 讲清 Unix、macOS、Windows 和 Plan 9 的用户缓存根目录规则,以及 XDG_CACHE_HOME 错误边界、应用子目录创建和缓存读写处理。
-
Go os.Root 可以把文件操作限制在指定目录树内,避免服务入口只靠字符串拼接判断路径。本文用 OpenRoot、Root.Open 和 Root.OpenFile 说明读取、写入、符号链接、fs.FS 复用与平台边界。
-
Go 1.25 新增的 fs.ReadLink 用来读取虚拟文件系统中符号链接的目标字符串。本文用 fstest.MapFS 演示 ModeSymlink、ReadLinkFS、Lstat 和 ReadFile 的配合,并说明它与 os.Readlink 的适用边界。
-
Go sync/atomic.AndUint64 可以用一个按位 AND 原子更新 uint64 状态字。清除指定状态位时要传入反掩码,函数返回清除前的旧值;本文还说明 64 位对齐与 atomic.Uint64.And 的选择边界。
-
Go filepath.WalkDir 跳过目录应先判断目录类型,再直接返回 SkipDir。本文给出目录名和根相对路径两种排除写法,并说明文件过滤、根目录保留、读取错误、输出完整性和符号链接的处理边界。
-
Go encoding/gob 传输接口字段时,需要用 gob.Register 注册接口里实际出现的具体类型,并在解码侧完成对应注册。本文用一个包含接口字段的消息结构体说明注册、编码、解码和常见失败边界。
-
Go encoding/xml 的 Decoder.Skip 可以在已经读到目标 StartElement 后消费完整嵌套子树,让流式解析继续到下一个同级节点。本文说明调用前提、游标位置、错误处理,以及 Skip 与 DecodeElement 的取舍。
-
text/scanner.Scanner.IsIdentRune 通过字符和位置回调决定一个标识符能由哪些 rune 组成。本文从默认规则出发,说明如何用 i 区分首字符和后续字符,并处理空白、TokenText 与 Scanner 封装边界。