Go语言技术文章
-
讲清 Go strconv.ParseInt 的 bitSize、ErrRange、ErrSyntax 与 NumError 返回边界,示范如何用 errors.Is、errors.As 和 %w 保留可判断的错误信息。324 收藏 -
Go 程序在本机能解析、进容器却失败时,问题常常来自运行环境的 DNS 配置差异。本文用 net.Resolver、PreferGo、Dial 和 HTTP Transport 说明如何把 DNS 服务器配置注入正确的连接路径,并给出超时与排查边界。324 收藏 -
Go database/sql 中常见的 defer tx.Rollback() 是失败路径的兜底清理。成功执行 Commit 后,事务已经进入完成状态,延后的 Rollback 通常只返回 sql.ErrTxDone,不会撤销已经提交的结果。本文解释 defer 时机、事务状态和错误处理模板。324 收藏 -
Go http.ServeFileFS 用 fs.FS 提供文件或目录响应,适合把 embed.FS 等抽象文件系统接到 HTTP 服务。本文从旧的 ServeFile 路径写法迁移到 fs.Sub 与 ServeFileFS,说明 name、io.Seeker、用户输入和 index.html 重定向等边界。324 收藏 -
Golang · Go问答 | 1星期前 | 标准库 · go · 错误排查 · Go 符号链接 errors.Is errors.As PathError filepath.EvalSymlinks
Go filepath.EvalSymlinks 返回错误时,不要只比较错误字符串。本文用 errors.Is 区分不存在和权限,用 errors.As 读取 PathError 的操作与路径,并说明非目录组件、损坏链接、循环链接等边界。324 收藏 -
Go encoding/csv 默认会用首条记录的字段数量约束后续记录。本文用最小输入复现 ErrFieldCount,并比较严格校验与可变字段读取的处理方式。324 收藏 -
Go encoding/json 遇到 NaN、+Inf 或 -Inf 时会返回 UnsupportedValueError。本文用最小示例区分错误类型,并给出序列化边界的有限浮点检查与业务取值方案。324 收藏 -
Go encoding/asn1 的字段标签不能直接作用于顶层值。本文用 MarshalWithParams 添加 tag:3,explicit,说明显式包装与字段标签的区别,并用对称参数完成编解码和尾部检查。324 收藏 -
Go sqlmock 的动态时间参数不适合做精确值比较。本文实现 Argument 匹配器,只约束 time.Time 类型,同时保留 SQL 和固定参数的精确断言。323 收藏 -
Go HTTP Server 默认开启 Keep-Alive。本文用 SetKeepAlivesEnabled(false) 关闭服务端连接复用,并解释 HTTP/1 空闲连接、HTTP/2 边界、优雅停机与客户端 Transport 配置的区别。323 收藏 -
Go slices.Values 提供按顺序产出元素值的迭代器。本文结合完整示例说明版本要求、break、重复遍历与共享切片边界,并给出普通 range 的回退取舍。323 收藏 -
Go 泛型排序的关键不是把所有类型都塞进 any,而是用 type set 明确比较能力。本文从 Price、ProductName 等业务命名类型出发,说明 ~ 底层类型约束、< 与 > 的适用边界,并给出标量排序与结构体字段排序的选择方法。323 收藏 -
用 Go httptrace.GotFirstResponseByte 记录响应头首字节延迟,区分服务端等待、响应体读取和 HTTP/2 不适用边界。323 收藏 -
Go embed 配合 fs.Glob 可以在只读的 embed.FS 中按 path.Match 规则查找内嵌模板。本文给出嵌入、匹配、解析和安全边界的完整写法。323 收藏 -
Golang · Go教程 | 3星期前 | 标准库 · 缓存 · HTTP · Go教程 · Go http.ServeContent Last-Modified If-Modified-Since ModTime
Go http.ServeContent 的 modtime 不只是一个参数:它会影响 Last-Modified 和 If-Modified-Since 的条件请求判断。本文从缓存未命中的排查场景出发,讲清零时间、秒级精度、304 响应与文件修改时间的正确衔接。323 收藏