-
用 Go 的 utf8.RuneLen 判断单个 rune 的 UTF-8 字节宽度,说明 1 到 4 字节与 -1 的含义,并区分 RuneError、非法 rune、字符串字节数和 rune 数。
-
围绕 Go jsontext Token 读取 JSON 数字,说明 Kind 判断、Int/Uint/Float 选择、语法与范围错误、向零截断,以及 Decoder 返回 token 的 Clone 生命周期边界。
-
go/doc/comment.Parser 接收已经去除 // 或 /* */ 标记的文档注释文本,返回可遍历的 *comment.Doc。本文用一个小型源码分析场景说明如何读取段落、标题和链接,并按需要交给 Printer 输出。
-
Go 1.23 起可以用 sync.Map.Clear 一次删除并发临时索引的全部条目。本文说明它与 Delete、普通 map clear 的适用边界,以及并发重建和版本兼容注意点。
-
Go net/http.NewFileTransportFS 可以把 fs.FS 接成 HTTP 客户端的 RoundTripper,常用于通过 file 协议读取本地目录或嵌入文件系统。本文说明 RegisterProtocol、路径映射、io.Seeker、响应体关闭和混合 Transport 的使用边界。
-
Go text/template 的 block 是“默认内容加可覆盖命名模板”的简写。本文用基础布局与子页面示例说明怎样解析同名定义覆盖默认块,并比较 block、define 与 ExecuteTemplate 的适用边界。
-
Go 1.27 的 encoding/json/v2 提供 UnmarshalRead,适合从 HTTP 请求体、文件或其他 io.Reader 解码一个完整 JSON 值。本文从请求体尾随数据的故障现场出发,说明 EOF、单值输入、大小限制、错误分类,以及多值流为何应该改用 UnmarshalDecode。
-
Go log/slog 的 Record 是带有隐藏属性状态的日志记录。本文说明普通赋值为什么可能共享状态,怎样用 Record.Clone 安全复制,并结合 AddAttrs、Attrs、Handler 分支和 NewRecord 给出可落地的选择。
-
Go encoding/json/v2 默认不给 time.Duration 分配 JSON 表示,直接编码会得到 SemanticError。本文用 FormatDurationAsNano(true) 让它以纳秒数 JSON number 编解码,并梳理嵌套字段、字符串数字与 v1 兼容边界。
-
Go json/v2 的 MarshalWrite 负责把数据写入 io.Writer,json.Deterministic(true) 负责让同一输入产生稳定的 JSON 字节结果。本文用原创示例说明 map 键、结构体字段、自定义 Marshaler 和构建条件的边界。
-
Go json/v2 MarshalWrite 用于把 Go 值直接编码到 io.Writer。本文说明 Writer 与值的参数顺序、编码选项、无换行行为,以及 HTTP 输出发生错误时应直接写出还是先缓冲。
-
Go encoding/json/v2 解码失败时,SemanticError 会携带 ByteOffset、JSONPointer 和 GoType 等上下文。本文用嵌套配置示例说明如何提取这些字段、转换行列位置,并区分语法错误、语义错误与流式读取错误。
-
Go encoding.BinaryAppender 的 AppendBinary 接收已有字节切片并返回追加后的结果。本文说明如何保护已有前缀、避免保存调用方缓冲区,并让 BinaryMarshaler 与追加编码保持同一语义。
-
用 Go parser.ParseFile 做源码分析时,注释为空或节点位置无法回溯,通常不是 AST 丢了信息,而是漏传 ParseComments、没有复用 token.FileSet,或忽略了解析错误。本文从症状、根因到修复代码说明三者如何配合。
-
Go encoding/json/v2 的 Options 不是一份只能全局修改的开关表,而是可以随调用组合的配置值。本文用编码、解码和 v1 兼容三个场景说明选项作用面、覆盖顺序与迁移边界。