-
Go mime/multipart 读取 multipart 数据时,NextRawPart 会保留 quoted-printable 等原始传输编码。本文用最小示例说明 boundary 解析、io.EOF 判断、Part 读取和 NextPart 的选择边界。
-
用 google/uuid 的 MarshalBinary 和 UnmarshalBinary 在二进制协议中读写固定 16 字节 UUID,并处理短写、半包、长度错误与文本格式边界。
-
Go 结构体切片按多个字段排序时,先比较主字段,只有主字段相等才比较次字段。本文用 slices.SortFunc 给出姓名升序、年龄升序及混合升降序写法,并说明原地排序、不稳定排序和旧版 Go 的兼容处理。
-
Go httptest.NewRecorder 的 Code 并不是创建时就固定为 200。本文区分显式 WriteHeader、写正文触发的隐式 200 和完全不写响应的 0,并说明为什么应使用 Result().StatusCode 断言最终 HTTP 状态。
-
Go 标准库 archive/zip 可以通过 Reader.File 遍历压缩包条目,使用 Name 读取文件名,使用 UncompressedSize64 和 CompressedSize64 获取 ZIP64 兼容的大小信息。本文补全目录项、路径安全、资源关闭和生产检查边界。
-
Go net/mail.Address.String 会把显示名按邮件地址语法重新格式化。本文解释可打印 ASCII 名称为何使用 quoted-string、非 ASCII 名称为何走 RFC 2047 编码,并给出生成和解析邮件头时的正确用法。
-
Go net/url.URL 的 Opaque 用于表示 scheme:opaque 形式的不透明数据。本文从字段关系、String 序列化和 RequestURI 输出说明它与 Host、Path 的边界。
-
Go 的 testing.T.Setenv 可以在单个测试生命周期内设置环境变量,并在测试结束时自动恢复。本文说明最小写法、子测试继承、并行限制和可替代的依赖注入方案。
-
用Go fs.Sub把资源子目录作为组件的新根,通过完整内存文件示例解释相对路径、目录列举、读取错误以及文件访问隔离的边界。
-
用 http.Transport.Clone 从基础 Transport 创建客户端专属副本,说明导出字段复制、请求前配置、空闲连接关闭和并发修改边界,避免多个 http.Client 共享配置时互相影响。
-
Go testing.T.Errorf 等价于记录格式化错误日志后调用 Fail:当前测试会被标记为失败,但函数仍会继续执行。本文用表格测试说明如何保留多个失败项,并对比 Fatalf 的立即停止边界、前置条件判断和并发调用注意事项。
-
Go http.Request.ParseForm 会把 URL 查询参数写入 r.Form,并在符合条件的 POST、PUT、PATCH 表单请求中同时填充 r.PostForm 与 r.Form。本文说明两个集合的来源、同名键优先级、Content-Type 边界、重复值读取和 FormValue 的错误处理差异。
-
fsnotify的一次保存可能产生多次通知。本文用单文件监听示例说明父目录过滤、静默窗口和单循环定时器,给出完整Go代码,并解释持续写入、慢处理、读取失败和通知丢失的限制。
-
Go httptest.ResponseRecorder.Result 返回处理器执行完成后的 http.Response 快照。本文比较记录器字段和最终响应的差异,并给出状态码、响应头、响应体的稳定读取方式。
-
围绕 Go encoding/base64 的 Strict() 说明尾部无效位为何被拒绝,区分字母表、填充与严格校验,并给出标准、URL 安全和无填充输入的选择方法。