-
go mod tidy 加入看似未使用的模块,通常是因为它会扫描测试、工具、构建标签和跨平台源码。本文用依赖路径、模块图和可回滚命令说明如何判断该模块是否应该保留。
-
Go 源站关闭 HTTP/2 后客户端仍显示 h2,通常是因为客户端看到的是到 CDN、负载均衡或反向代理的前端连接。本文从逐跳协议边界、Server.Protocols 绑定、直连源站与 r.Proto 证据入手,定位真正仍在使用 HTTP/2 的链路。
-
Go mime.ExtensionsByType 做 MIME 到扩展名的反向查询时,结果可能包含多个带点后缀。本文说明如何把它当作候选集合,并用业务格式、用户偏好或稳定排序选择默认后缀,同时明确它不负责检测文件内容。
-
Go 1.27 把 go fix 中的 waitgroup analyzer 改名为 waitgroupgo。本文区分命令入口与分析器名称,说明如何用 go tool fix help 和 go fix -diff 确认参数,并判断哪些 WaitGroup 写法适合现代化、哪些场景需要人工复核。
-
nil map 读取缺失键返回零值,写入却会 panic。以表单状态为例说明 nil 与空 map、写入方法初始化、函数返回新 map 以及嵌套 map 的责任边界。
-
reflect.Value.SetString 只有在目标值有效、Kind 为 String 且 CanSet 为 true 时才适合调用。本文说明指针取 Elem、结构体字段和未导出字段的边界。
-
Go 拼接带有路径参数的 URL 时,直接把原始字符串放进 Path 容易让斜杠、空格或问号改变路径结构。本文说明 net/url.PathEscape 的正确边界,并对比 QueryEscape、url.URL.Path、RawPath 和重复转义问题。
-
Go 的 io.SectionReader 会把读取限制在指定区间内。本文说明越界短读的原因、Read 与 ReadAt 的偏移差异,以及如何用 ReadFull 和 n/err 处理固定长度与尾部数据。
-
Go 1.27 的 jsontext.Decoder.ReadValue 在对象或数组结束标记处返回 SyntacticError,并不会推进读取状态。本文区分结束 Token、真正的 io.EOF 和语法错误,说明如何用 PeekKind 与 ReadToken 安全处理流式 JSON 边界。
-
gofpdf 的 Cell 默认把当前位置移到右侧,MultiCell 输出多行后回到左边距并进入下一行。本文用坐标记录、CellFormat 和表格布局示例说明如何选择与排查。
-
Go httptrace.ClientTrace 可以在 GotConn 回调中记录连接是否复用。本文说明 Reused、WasIdle、IdleTime 的区别,以及同一个 http.Client、响应体关闭和 HTTP/2 场景下的排查边界。
-
strconv.ParseInt 的错误不能只看 Error() 字符串。本文用 NumError、errors.Is 和参数边界区分语法错误、数值越界、非法进制与非法位宽,并给出适合接口输入的处理方式。
-
Go 1.27 的 encoding/json/v2 已移除实验期 format 标签选项。本文按标签参数形态、time.Time、time.Duration 和自定义类型说明迁移时应该怎么改。
-
本文用 Go net/http 说明 Transport.CloseIdleConnections 只关闭 keep-alive 空闲连接,区分 Response.Body、活动连接和请求取消,并给出 Client、Transport 与连接池参数的排查方法。
-
以Linux交叉构建为范围,区分目标架构与链接方式,介绍关闭cgo和保留目标C工具链两条路线,并说明动态加载器、共享库及运行镜像迁移条件。