-
Go path.Match 中的 ** 不是多级目录通配符,连续两个 * 仍然不能跨过斜杠。本文用最小示例拆开单层与多层路径的差异,并说明如何区分 false、ErrBadPattern 以及逐段匹配方案。
-
Go os.File.ReadAt 只负责按偏移读取,不会替你关闭文件。本文从打开点、defer Close、ReadAt 返回值和并发路径四处排查资源未释放。
-
Go os.File.ReadAt 的 off 是文件字节偏移,负数不是可读取的位置。本文从错误现象、偏移计算、参数校验和 *os.PathError 判断四层排查,给出安全的 ReadAt 封装,并区分它与 Read、Seek 的位置语义。
-
判断 Go os.File.WriteAt 是否完整,不能只看 err。应同时比较 n 与 len(p),区分完整写入、部分写入和异常,并保留底层错误;本文给出可复用的固定偏移写入判断函数。
-
Go constant.Bytes 输出整数绝对值的小端字节,因此不保存负号。本文给出符号与幅值分离的编码和还原写法,说明它与补码、文本的区别,以及类型、长度、零值和跨系统转换的边界。
-
Go net.ListenConfig.MultipathTCP 和 SetMultipathTCP 怎样控制监听器是否使用 MPTCP,本文说明开关优先级、TCP 回退边界与最小代码写法。
-
Go net.ListenConfig 看起来不生效时,先确认监听是否由 lc.Listen 创建,再分别检查 Control 的执行时机、context 的作用范围、HTTP Server 是否复用了监听器,以及 KeepAlive 的连接级边界。本文用几个最小示例整理出一套可复用的排查顺序。
-
Go mime/multipart.Reader 中,Part.Read 返回 io.EOF 表示当前部件结束,NextPart 返回 io.EOF 才表示整个 multipart 消息结束。本文用手动读取、io.ReadAll 和异常输入三个示例说明结束判断、n>0 与 EOF 同时返回及部件切换边界。
-
Go mime/multipart.Reader 读取不到字段或文件时,先检查 Content-Type 中的 boundary 和请求体是否已被消费,再选择 NextPart 或 ReadForm。本文用一个最小 HTTP 示例说明流式读取、io.EOF、部件消费和模式混用的排查方法。
-
Go mime/multipart.Reader 本身按部件遍历 multipart 数据,单个文件部件的大小上限要在读取当前 Part 时用 limit+1 哨兵判断。本文给出内存读取、流式落盘和请求总量限制的组合写法,说明超限后的清理与部件切换边界。
-
Go 的 image.Decode 读取 GIF 时只返回第一帧,这是通用图片接口的明确语义。本文说明 image.Decode 与 gif.DecodeAll 的选择、GIF.Image/Delay/LoopCount 的对应关系,以及处理不可信 GIF 时如何先检查尺寸再从头解码。
-
Go image.Decode 不生效时,先区分 image.ErrFormat、EOF 和 reader 已被消耗三类原因。本文说明 PNG、JPEG、GIF 解码器的空白导入注册方式,演示 DecodeConfig 预检、重新创建 reader、限制图片尺寸以及通过 format 和 Bounds 确认结果。
-
Go image.Decode 得到空结果时,优先检查错误、格式注册和 Reader 读取位置。本文用最小示例说明空输入、未注册解码器、预读后未回退和 DecodeConfig 尺寸边界的处理方式。
-
Go flag.FlagSet 的空结果通常不是没有解析,而是输入没有位置参数、flag 仍使用默认值,或解析在第一个非 flag 参数处停止。本文用最小示例拆开 Parse、NArg、Args、Arg 和 Parsed 的边界。
-
go/types.Config 本身不是需要 Close 的资源句柄。本文按一次类型检查的数据生命周期,说明怎样用堆画像定位真正长期存活的 Package、Info、FileSet、Importer 缓存或增量 Checker,并给出可回收的代码边界。