Go 的 bufio.Reader.Peek 只查看缓冲区数据,不会推进读取位置,但返回切片会在下一次读取后失效;如果忽略 Peek 错误或把普通 Read 当成精确读取,就会误以为数据不完整。本文用最小程序复现短读、ErrBufferFull 和正确的 io.ReadFull 修复方式。
io.LimitReader 达到上限后也会返回 EOF,这个 EOF 不能单独证明源数据自然结束。本文用 max+1 探测窗口区分恰好达到上限、超限截断和底层读取错误,并给出可复用的 Go 实现与测试边界。
讲清 Go http.DetectContentType 的前512字节取样边界、短文件处理、application/octet-stream 回退,以及上传文件取样后如何复位游标。
Go mime.WordEncoder.Encode 会把需要编码的中文主题或显示名转换成 RFC 2047 encoded-word;ASCII 普通文本则保持原样。本文说明 QEncoding、BEncoding、字符集和邮件头组装边界。
很多人会把 io.PipeReader.CloseWithError 的方向写反:生产者异常应由 PipeWriter.CloseWithError 传给消费者,读端关闭则用 PipeReader.CloseWithError 让写端退出。本文用最小示例说明自定义错误、EOF、主动取消和首个关闭错误生效等边界。
Go hash.Hash.Sum 会把当前摘要追加到传入切片末尾,不会覆盖已有前缀,也不会改变哈希状态。本文说明 dst、len、cap 与 Size 的关系,并给出安全的摘要追加写法。
Go filepath.WalkDir 默认不会进入目录中的符号链接,这不是遍历失败,而是标准库刻意定义的边界。本文用最小目录树复现现象,再说明怎样读取链接本身、解析目标,并为显式递归补上循环保护。
Go ascii85.NewEncoder 可能暂存不足四字节的尾块。本文解释 Write 与 Close 的职责,给出完整编码示例,并说明错误处理、外层缓冲和消息边界。
用 net/http.CrossOriginProtection 保护状态变更接口时,如果健康检查使用非安全方法,可用 AddInsecureBypassPattern 配置精确的例外模式。本文说明方法匹配、直接匹配、冲突和默认拒绝边界。
用最小示例拆开 Go os.Root 的根目录与相对名称,解释绝对路径、空路径、.. 越界和符号链接为什么会失败,并给出保留 PathError 的修复写法。
区分 Go gosym.LineToPC 的文件键缺失与源码行无地址,给出保留错误类型的诊断代码,并说明源码版本、路径映射和近似定位的处理方式。
Go 的 net.IPMask.Size 返回前导 1 的数量和掩码总位数。本文用 IPv4、IPv6、/0 与非连续掩码对照,说明怎样准确判断连续 CIDR 前缀,避免把合法零前缀误判为错误。