-
Go log/slog 可以用 GroupAttrs 把动态收集的 slog.Attr 放进命名属性组。本文从字段资产、属性收集、空组名、WithGroup 和 ReplaceAttr 的边界入手,说明怎样让日志结构清晰,同时避免把分组误当成脱敏措施。
-
用 Go 的 compress/flate 读取不带 zlib 或 gzip 外层封装的原始 DEFLATE 数据,讲清 NewReader、NewReaderDict、EOF、损坏输入和流复用的边界。
-
Go 用 go/ast 修改 ImportSpec 时,直接改 Path 或 Name 通常不会丢掉 Comment;真正需要谨慎的是解析时是否保留注释,以及移动、删除节点后 File.Comments 与位置关系是否仍然一致。本文给出一套可复用的修改和输出流程。
-
Go 的 base32.StdEncoding 使用标准 Base32 字母表,base32.HexEncoding 使用 Extended Hex Alphabet。本文比较两者的字符集、互操作关系和 padding 选择,给出生产方与消费方的固定方式。
-
Go 1.27 提供标准库 uuid 包,本文用最小示例说明 New、NewV4、NewV7、Parse、String 和文本接口的用法,并处理非法输入与版本兼容边界。
-
Go 基准测试把多个场景写在同一个 Benchmark 函数里时,结果很难比较。本文用 testing.B 的 Run 方法拆分样本,并把输入准备与计时范围分开,让每个子基准单独呈现 ns/op。
-
Go maps.Clone 会复制一个新的 map 容器,并在输入为 nil 时保留 nil 语义。本文从配置快照场景说明 nil 与空 map 的区别、顶层修改的独立性,以及嵌套切片仍共享的浅复制边界。
-
用 go-audio/wav 的 PCMBuffer 固定容量读取 WAV 整数 PCM,掌握 n、声道帧边界、EOF 与 Err 的处理方式,避免 FullPCMBuffer 带来的整段内存占用。
-
httptest.NewRequest 构造的是直接交给 handler 的入站测试请求,RemoteAddr 的固定值是稳定的默认哨兵,不代表真实客户端地址。本文说明它与 target、Host、Proto、TLS 的关系,并给出覆盖字段和改用 httptest.Server 的判断方式。
-
Go http.Request.Clone 会为请求副本隔离 Header 映射,但 Body 仍是浅拷贝。本文用最小示例讲清 Clone、WithContext 和 Header.Clone 的边界与推荐写法。
-
Go 1.24 起 net/http.Protocols 可以显式启用未加密 HTTP/2。本文分别说明 Transport 与 Server 的配置位置、HTTP/1 兼容取舍和明文传输的安全边界。
-
Go mime/multipart 的 NextRawPart 用于按顺序读取 multipart 的原始 part。本文从 boundary 解析、EOF 判断、流式保存和 quoted-printable 边界说明调用方式,并区分它与 NextPart 的行为。
-
Go debug/pe.File.COFFSymbolReadSectionDefAux 用于读取节定义符号后的 COFF 辅助记录。本文从 COFFSymbols 索引、SectionNumber 与辅助数量出发,给出资源安全的读取示例,并说明如何结合 IMAGE_SCN_LNK_COMDAT 解释 Selection 字段。
-
Go 的 bufio.Reader.Discard 用于消费并跳过指定数量的字节。本文用一个固定前缀读取小项目说明 discarded 与 err 的含义,重点处理短读取、EOF、缓冲区边界和负数参数,并比较 Peek、Read 与 io.ReadFull 的适用场景。
-
go-smtp 的 Client.Reset 会发送 SMTP RSET,清除当前 MAIL/RCPT 事务但保留连接。本文说明它适合的阶段、DataCommand 的关闭边界,以及失败后何时应该直接重连。