-
解释 Go encoding/json 中 nil 切片、空切片与 omitempty 的 JSON 输出差异,并给出稳定列表接口字段形状与回归测试写法。
-
time.Time.Year 返回公历年,而 ISOWeek 返回 ISO 8601 的周所属年与周号。本文用年初年末边界说明两者为何不同,并给出正确的周统计键和回归测试写法。
-
Go JSON 时间字段解析失败常源于输入表示与 time.Time 的 RFC3339 契约不符。本文给出三种输入的最小复现,说明旧格式的显式转换、时间戳单位、空值规则与迁移选择。
-
Go encoding/json 遇到 NaN、+Inf 或 -Inf 时会返回 UnsupportedValueError。本文用最小示例区分错误类型,并给出序列化边界的有限浮点检查与业务取值方案。
-
Go encoding/json 解码到 map[string]any 时,JSON 数字默认映射为 float64。本文用最小复现解释原因,并给出结构体与 Decoder.UseNumber 两种保留数字语义的处理方式。
-
Go multipart.Part.FormName 只返回 form-data 分段的 name,attachment 含有同名参数也会返回空字符串。本文用原创示例说明通用参数解析、错误处理与接收策略,避免将附件元数据误当表单字段。
-
Go plan9obj.Section 的两个读取者应分别调用 Open,以隔离各自的 Seek 游标。本文对比共享读取器、独立 Open 和 ReadAt,给出窗口读取示例,并说明底层文件寿命与关闭责任。
-
Go encoding/csv 默认会用首条记录的字段数量约束后续记录。本文用最小输入复现 ErrFieldCount,并比较严格校验与可变字段读取的处理方式。
-
jpeg.Decode 成功只保证返回 image.Image,并不保证具体类型为 YCbCr。本文比较接口处理、带 ok 的断言和 RGBA 转换,说明迁移方式及内存成本。
-
Go lzw.Writer 要求输入字节小于 1<
-
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、主动取消和首个关闭错误生效等边界。