-
Go 的 maps.Clone 不只是复制键值,它还保留源 map 的 nil 语义。本文用最小示例区分 nil map 与非 nil 空 map,说明 Clone 后的写入边界、浅拷贝限制,以及序列化和默认值处理时的工程取舍。
-
解释 Go sync.Pool 中对象在 GC 后为什么不能视为必然存在,给出 New 兜底、重置状态和 Get/Put 生命周期的安全写法,并划清临时复用与业务缓存的边界。
-
Go 1.25 新增的 fs.ReadLink 用来读取虚拟文件系统中符号链接的目标字符串。本文用 fstest.MapFS 演示 ModeSymlink、ReadLinkFS、Lstat 和 ReadFile 的配合,并说明它与 os.Readlink 的适用边界。
-
Go csv.Reader 用 FieldsPerRecord=-1 可以接收列数不固定的记录;如果业务仍需识别异常列宽,则应保存每次 Read 返回的 record,并在固定列宽模式下同时保留 ErrFieldCount。本文区分字段数错误、部分解析错误和 io.EOF,给出可审计的导入循环。
-
说明 Go net/url.URL 的缺省字段、查询空值与业务补丁的区别,给出保持、设置、删除三态示例,并处理 ForceQuery、Fragment 和编码提示的边界。
-
本文用一个可复用的最小示例说明 Go context.AfterFunc 如何在上下文取消后安排异步清理,重点解释 stop 返回值、清理完成通知、竞态和幂等边界。
-
围绕 Go image/gif.GIF 的 Disposal 字段,说明 DisposalNone、DisposalBackground 和 DisposalPrevious 如何影响动画帧结束后的画面,并给出 Image、Delay、Disposal、BackgroundIndex 与 EncodeAll 的对应写法。
-
Go 的 encoding/json 把未知 JSON 数字默认解码为 float64,转入 interface{} 后可能丢失大整数精度。本文用 UseNumber、json.Number、RawMessage 和明确字段类型分别处理动态 JSON、多态字段与业务 ID。
-
Go archive/zip 的文件名由 Create 参数或 FileHeader.Name 决定。本文用原创示例说明如何生成稳定的相对路径,并处理目录、重复名、分隔符和中文名编码边界。
-
反向代理要控制上游协议,关键是给 ReverseProxy 配置自定义 Transport.Protocols,而不是只修改入口 Server.Protocols。本文用 Go 代码说明 HTTP/1、TLS HTTP/2、明文 HTTP/2 的选择、回滚与排查边界。
-
批量压缩多个独立数据块时,可以复用同一个 gzip.Writer,但必须先 Close 完当前 gzip 流,再调用 Reset 切换输出目标,并在首次写入前重新设置 Header。本文用两个缓冲区说明复用顺序、元数据边界和不适合共享 Writer 的场景。
-
Go database/sql Tx 在 BeginTx 成功后注册 defer 回滚兜底,用提交成功标记明确收尾权,并保留业务、提交与清理错误。附原创封装示例与取消、panic 和提交失败的边界说明。
-
Go hash/maphash 适合为当前进程内的字符串或字节键计算 uint64 哈希。本文从 Seed 的归属、String 与 Bytes 的选择、复合键规范化和并发边界入手,说明哪些结果可以用于分桶和索引,哪些用途不应依赖。
-
Go 的 x/text/number.Percent 适合把 0 到 1 的比例值格式化为带百分号的本地化文本。本文从输入尺度开始,说明 message.Printer、Scale、Precision 和舍入边界怎样配合,并给出可复用的封装。
-
Go Hamba Avro 处理演进中的 Avro 记录时,应先用 SchemaCompatibility.Resolve(reader, writer) 生成复合 Schema,再交给 NewDecoderForSchema 解码。本文用新增默认字段、删除旧字段和 int 到 long 类型提升说明完整路径,并补充不可信输入的大小限制与拒绝记录边界。