-
判断 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,并给出可回收的代码边界。
-
Go flag.FlagSet 参数不生效时,应核对注册集合、Parse 入参和选项位置。本文给出独立解析函数,说明位置参数、布尔赋值、子命令与错误处理的常见问题,并提供排查速查表。
-
Go go/types.Config 看起来不生效,通常是配置没有传给同一次 Check、文件集合不完整、Importer 缺失,或 types.Info 没有初始化。本文按四个对照点定位,并给出可复用的 Config.Check 示例。
-
Go go/types.Config.IgnoreFuncBodies 可以让类型检查器跳过函数体,但不会跳过函数声明、参数和返回值。本文用最小源码分析流程说明它的影响范围、Info 映射的取舍,以及为什么函数体内表达式信息会变得不完整。