-
用 Go 的 image/gif.EncodeAll 组织多帧 GIF:把输入转换为统一调色板的 Paletted,按帧对齐 Delay 和 Disposal,并处理 LoopCount、Config 以及文件关闭错误。
-
Go 读取 GIF 动画时应使用 image/gif.DecodeAll,遍历返回的 Image 与 Delay 数组;Delay 的单位是百分之一秒,LoopCount 还要单独解释。本文给出尺寸预读、文件复位、延迟换算和内存边界。
-
用 Go runtime/debug.ReadGCStats 采样 GC 暂停历史时,Pause 可能复用底层切片。本文说明如何复制采样快照、读取最近优先的暂停记录,并用 PauseQuantiles 输出固定分位数摘要。
-
Go testing.F.Add 用来把固定回归样例加入模糊测试种子语料。本文说明参数类型和顺序、调用时机、普通 go test 与 -fuzz 的运行关系,以及如何整理稳定的 fuzz target。
-
Go 模糊测试发现失败输入后,会把最小化样本写入 testdata/fuzz。本文说明如何用 -run 单独复现、提交种子文件,并让普通 go test 持续执行这条回归用例。
-
Go image/color.NRGBA64 保存的是非预乘的 16 位颜色通道,但通过 color.Color.RGBA() 读取时会按 alpha 做预乘并以 uint32 返回。本文用具体数值拆开字段、接口和透明像素的差异,帮助你在颜色采样和图像处理代码中选对读取方式。
-
Go crypto/ecdh 的 ECDH 调用要求本地私钥与远端公钥使用同一曲线。本文从跨服务故障现场出发,说明 P256 与 P384 为什么不能混用,如何用 Curve() 定位问题,以及如何把曲线约定前移到协议边界。
-
Go crypto/ecdh 的 PublicKey.Bytes 返回的是公钥编码副本,恢复时需要使用同一条曲线调用 Curve.NewPublicKey。本文用 P256 演示导出、传输、恢复和 Equal 对照,并解释 NIST 曲线未压缩点、X25519 长度检查及常见错误。
-
Go time.Duration 序列化成 JSON 时,裸数字代表纳秒,容易被误读为毫秒。本文给出带单位字符串、明确单位整数和旧数据迁移的协议设计方法。
-
Go 的 time.Duration 处理负时间间隔时,Round 取最近倍数,半值远离零;Truncate 则向零截断。本文用具体边界说明两者在耗时统计和窗口计算中的选择。
-
Go compress/flate 的 NewWriterDict 适合压缩包含稳定重复片段的文本,但压缩端和解压端必须提前约定同一份字节字典。本文用 JSON 和模板字段示例说明 API 用法、适用条件、兼容风险与选型边界。
-
Go debug/dwarf.Reader 按条目读取 DWARF 调试信息。本文说明怎样用 Next 判断条目边界,用 Tag 筛选目标,并在不需要子树时调用 SkipChildren 跳过无关内容。
-
Go crypto/x509.ParseRevocationList 可以把 ASN.1 DER 编码的 X.509 v2 CRL 解析为 RevocationList。本文说明如何从 PEM 取出 DER、读取撤销证书条目,并区分解析、旧字段和签名校验边界。
-
Go net.Resolver.LookupHost 接收 context.Context,返回主机地址字符串切片和 error。本文从一次服务发现调用的实际体验出发,说明怎样设置超时、区分取消与 DNS 失败,并选择适合的解析 API。
-
Go net.LookupAddr 会把 IP 反查为名称列表,而不是保证唯一的主机名。本文说明如何遍历多结果、处理部分结果与错误,并用 Resolver.LookupAddr 配合 context 设置超时。