-
解释 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 按键排序并保留每个键的值顺序。本文用请求、签名和边界检查示例说明怎样稳定输出重复查询参数。
-
调用 context.WithCancel 只能发出取消信号,不能替你证明子协程已经结束。本文用一个可复测的 worker 示例说明如何结合 ctx.Done、defer wg.Done 和 Wait 确认退出,并指出常见的提前返回与阻塞边界。
-
Go 的 HTTP 响应头必须在第一次 WriteHeader 或 Write 之前设置;本文用 handler 分支说明隐式 200、最终状态码、http.Error 与 trailer 的边界。
-
Go mod tidy 后出现 // indirect 不一定是多余依赖。本文从传递依赖、测试与构建条件三个入口排查来源,并用 go mod why、go mod graph 和 -diff 安全确认是否应该保留。
-
解释 Go math/big.Float.Text 的 format 与 prec 如何共同决定输出形态,比较 e、f、g、x、b、p 的参数语义,并给出固定数值的可读示例与边界判断。
-
Go test 显示 cached 不代表测试代码再次运行。本文用 -count=1 做一次明确复查,并区分清理缓存、重复运行和 CI 排查时的使用边界。
-
讲解 Go encoding/xml.Decoder.Token 如何流式扫描大型 XML,结合 DecodeElement、Skip、InputPos 与命名空间处理逐条读取记录。