-
Go JMESPath 查询在请求路径中反复解析时,容易把表达式编译和数据搜索混在一起。本文从一次重复解析的故障症状出发,说明如何用 Compile 提前编译稳定查询,在多个 JSON 文档上复用,并处理并发安全、错误传播和动态表达式边界。
-
Go 1.23 起可以用 maps.Keys 获取 map 的键迭代器,再用 range 或 slices.Collect 收集成切片;如果输出必须稳定,还要显式排序,因为 map 键的迭代顺序没有保证。
-
Go 1.27 为 crypto/x509 增加 ML-DSA 证书密钥支持。本文用 PEM 证书读取示例说明如何区分证书、公钥算法、ML-DSA 参数集与证书签名算法,并解释什么时候应使用 ParsePKIXPublicKey。
-
Go 的 Root.Readlink 正式拼写带小写 l,专门读取根目录内符号链接保存的目标文本。本文用最小示例区分读取链接、跟随链接和路径越界错误。
-
Go 1.24 起 net/http.Protocols 可以显式启用未加密 HTTP/2。本文分别说明 Transport 与 Server 的配置位置、HTTP/1 兼容取舍和明文传输的安全边界。
-
用 parquet-go 写 Parquet 时,先让 Go 结构体定义行 schema,再按数据量选择 WriteFile 或 GenericWriter。本文给出结构体切片写文件、分批写入 io.Writer、标签配置和失败处理的选择边界。
-
Go crypto/mldsa 的签名输入涉及原始消息、Context、参数集和私钥种子。本文对比生成与导入密钥、普通与确定性签名,给出最小示例及输入选择表。
-
Go 的 build.Context.MatchFile 会结合文件名和文件内容中的构建约束,判断源文件是否属于目标构建上下文。本文用 GOOS、GOARCH、CgoEnabled 和 BuildTags 说明筛选逻辑、错误处理与源码扫描写法。
-
用 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。