-
os.DirFS 不接收字节缓冲区。本文用完整 Go 文件摘要示例说明如何在打开文件后复用工作区,并解释 CopyBuffer 快速路径、切片长度、串行所有权和目录访问边界。
-
path.Match 不会打开或释放资源,它适合把资源名称筛成可疑集合。本文说明怎样设计 name 和 pattern,区分 matched=false 与 path.ErrBadPattern,再把命中结果交回文件、连接或任务的生命周期检查。
-
Go filepath.WalkDir 遇到权限目录时,不要直接让整个遍历失败。先判断回调 err 和 d,再用 errors.Is 识别 fs.ErrPermission,并按场景选择返回 nil、fs.SkipDir、fs.SkipAll 或原始错误。
-
解释 log/slog ReplaceAttr 处理嵌套 Group 时 groups 与 a.Key 的边界,给出按完整路径脱敏的写法,并区分 Group、LogValuer、Any 和 Handler 配置范围。
-
从字符串排序迁移到 netip.Addr.Compare:本文用 ParseAddr 和 sort.SliceStable 对 IPv4、IPv6 地址做稳定排序,并说明非法输入、相同地址和 IPv6 zone 的边界。
-
Go x/text/language Matcher 可以把用户偏好的 BCP 47 语言标签匹配到站点支持列表。本文从支持语言与回退项开始,演示 MatchStrings、返回索引和 PreferSameScript 的使用边界。
-
Go x/net/html/charset.DetermineEncoding 返回的 certain 不是“有没有识别出编码”,而是“结果是否来自可靠声明”。本文拆解 BOM、Content-Type、meta 扫描、UTF-8 推断与 windows-1252 回退的顺序,给出网页乱码排查时的使用方式。
-
Go x/image/riff 的 chunkLen 只表示块数据长度;当数据长度为奇数时,RIFF 还会补一个 padding byte。因此下一个块偏移要同时考虑 8 字节头部、数据区和对齐字节。
-
Go context.AfterFunc 会在 Context 取消后异步执行收尾函数,但 stop 返回 false 不等于收尾已经完成。本文用资源清理场景说明注册、正常结束、取消等待和并发边界,避免把 stop 当成同步等待函数。
-
hash/maphash 没有 MakeHash,正确入口是 MakeSeed。本文区分 Seed、Hash 和 SetSeed,说明 String、Bytes 的选择、并发复用边界,以及为什么 Seed 不能跨进程持久化或用于密码学哈希。
-
Go math/big.Int.BitLen 返回绝对值的位长度,最少无符号字节数可按 (BitLen()+7)/8 估算。本文区分零值、负数、Bytes 变长编码与 FillBytes 固定宽度编码。
-
Go 的 url.Values 用 map[string][]string 表示查询参数:Add 追加同名值,Set 替换全部旧值,Get 只取第一个,Encode 按键排序并保留每个键的值顺序。本文用请求、签名和边界检查示例说明怎样稳定输出重复查询参数。
-
Go slice 截取不会复制底层数组,只保留很小的子切片时,大数组仍可能被引用。本文用字节片段示例说明原因,并给出 make+copy 与 bytes.Clone 的释放方案。
-
Go 读取已关闭 channel 时会得到元素类型零值,但双返回值中的 ok 会变成 false。本文区分开放空通道、已关闭通道和缓冲值,说明单次接收、range 消费与关闭责任的正确约定。
-
Go HTTP 长连接空闲后复用失败,通常不是单一的超时参数问题。本文比较客户端 Transport、服务端 keep-alive、Response.Body 和连接池复用这几个边界,给出配置与排查方法。