-
Go 的 crypto/mlkem 把 ML-KEM 密钥分成私有的 DecapsulationKey 和公开的 EncapsulationKey。本文说明 GenerateKey、Bytes、New*Key 的对应关系,并整理 768/1024 参数集的序列化长度与工程基线。
-
Go http.Client 可以在 CheckRedirect 中读取 via 请求链并设置跳转上限。本文区分重定向次数与请求总数,说明普通错误和 http.ErrUseLastResponse 对 Response、Body 和 url.Error 的不同影响。
-
Go json.Decoder 可能提前从底层 Reader 读取数据,Decode 返回后仍有一部分字节停留在内部缓冲。本文说明 Buffered 的准确边界、如何和底层 Reader 余量拼接,以及为什么下一次 Decode 或 Token 后不能继续依赖旧 reader。
-
Go 1.27 的 go fix 新增 slicesbackward modernizer,可把符合条件的手写切片反向循环迁移到 slices.Backward。本文说明如何预览变更、何时保留索引变量,以及生成文件和构建标签带来的边界。
-
reflect.VisibleFields 会把匿名嵌入结构中的可见字段和未导出字段一起返回,真正的导出筛选要交给 StructField.IsExported。本文用一个包含嵌入结构的例子说明如何保留提升字段、处理 Index,并封装成可复用函数。
-
Go http.Server 的优雅关闭不是直接调用 Close,而是用 Shutdown 先停止监听、关闭空闲连接,再等待活动请求结束。本文给出带退出信号和超时上下文的最小实现,并说明 ErrServerClosed、超时以及 WebSocket 等长连接边界。
-
GoLLRB 的 DeleteMin 会删除并返回有序树中的最小元素,空树返回 nil。本文对比 Min 与 DeleteMin,演示 llrb.Int、类型断言和连续消费时的停止条件。
-
Go 模块发布后发现严重问题时,可以用 retract 标记单个版本或闭区间,让后续版本选择避开它,同时保留已有项目的可复现构建。本文说明 go.mod 写法、承载版本、go list 查询与旧工具链边界。
-
用 Go iter.Pull 构建受限整数收集器,区分 nil 迭代器、空序列、合法零值、解析错误与提前停止,提供完整代码,并解释 defer stop、panic 传播和资源清理的边界。
-
Go 中按指定时区生成日期边界时,应让 time.Date 和 AddDate 共享同一个 time.Location,并用当天零点到下一天零点的半开区间做查询。本文说明时区加载、夏令时边界和固定 24 小时截断的区别。
-
Go 的 os.File.Chdir 可以把已经打开的目录句柄设为当前工作目录,适合需要复用目录句柄的场景。本文从一次相对路径读取失败的排查开始,说明打开、切换、恢复、关闭和并发边界。
-
Go 1.17 后未转义分号不再按旧规则拆分查询参数。本文用 net/http.AllowQuerySemicolons 在 ParseForm 前包住 Handler,说明重复键、空值、编码分号以及代理解析不一致的边界。
-
Go io.LimitedReader 可以把下游读取限制在固定字节数内。本文从上传流和请求体场景出发,说明 LimitReader 的上限语义、EOF 判断、底层错误处理,以及为什么限制器不会自动关闭原始 Reader。
-
Go archive/zip 的 FileHeader.CreatorVersion 不是单纯的版本号,其中包含 ZIP 条目创建平台和版本信息。本文给出拆解高低字节、读取常见平台标识以及结合 ExternalAttrs 判断权限的实用写法。
-
Go 的 fs.FormatDirEntry 可以把 DirEntry 转成适合人阅读的短文本。本文从目录读取、遍历输出和边界判断说明它与 FileInfo 格式化的区别。