Go语言技术文章
-
Go 的 time.LoadLocation 在精简容器中报 unknown time zone,通常是运行环境缺少 IANA 时区数据。本文按查找顺序、镜像补齐、time/tzdata 嵌入和 ParseInLocation 验证给出处理方案。403 收藏 -
用 io/fs.FS 统一 Go 的 embed.FS 与 os.DirFS,解释 fs.ValidPath 的路径规则、发布目录边界和开发环境切换方式。403 收藏 -
Go 反射中,Value.Elem 遇到 nil 指针会返回 zero Value。先用 IsValid 判断,再对可空 Kind 调用 IsNil,并在每次 Elem 后保留成功标志,就能避免继续访问无效 Value。403 收藏 -
Go bytes.Reader.ReadAt 用显式偏移读取数据而不改变当前位置,适合读取文件头、索引和多个独立区间。本文说明它与 Read、Seek 的边界、n 与 io.EOF 的判断方式,以及只读并发使用时的注意事项。403 收藏 -
用 runtime/cgo.Handle 把包含 Go 指针的状态安全交给 C 保存和回调,说明 NewHandle、Value、Delete 的生命周期、并发边界与常见失效原因。403 收藏 -
pkg.go.dev API 使用 nextPageToken 续取分页结果。本文用 Go 演示如何保留原始查询参数、追加 token、处理空页与重复游标,并给出可恢复的请求循环。403 收藏 -
Go 批量任务不要只返回一个模糊错误:用结构化失败记录保留输入编号与阶段,再用 errors.Join 汇总整批失败状态,并通过 errors.Is、errors.As 支持分类判断和重试。403 收藏 -
用 go fix modernizers 批量迁移旧标准库写法,先预览差异,再按 fixer、Go 版本和构建平台执行,并用测试确认语义边界。403 收藏 -
bytes.Reader.Seek 判断的是最终绝对位置。定位到数据开头之前会返回 0 和 negative position 错误,原读取位置保持不变;越过末尾则可成功,但后续读取会得到 EOF。403 收藏 -
围绕 filepath.Rel 计算文件相对路径时最容易出现的目录基准误用,说明 basePath 的含义、跨目录返回 .. 的边界、相对绝对路径错误,以及输出到 URL 或清单时的分隔符转换。403 收藏 -
Go billy 的 Capabilities 返回文件系统能力位,CapabilityCheck 可判断一组操作是否同时被支持。本文说明位掩码读取、能力声明与底层存储状态的区别,以及写入、锁定和同步前的分支设计。403 收藏 -
解释 Go string 的字节长度、rune 字符边界和显示宽度差异,给出安全截断中文文本的实现与上线检查方法。403 收藏 -
Go 的 CookieJar 通过 http.Client 管理跨请求会话状态。本文用标准库示例说明如何保存 Set-Cookie、按 URL 自动发送 Cookie,并处理域名、路径、并发和安全边界。403 收藏 -
Go 基准的 ReportMetric 只报告传入的数值,不会自动按 /op 归一化。本文用批处理示例说明总量除以 b.N、固定单次值、单位约束、重复覆盖、计时重置与默认指标的关系。403 收藏 -
go test 看到旧输出或失败用例像是没有重新执行时,先识别 cached 标记,再用 -count=1、go clean -testcache 和 GODEBUG 判断到底是测试结果缓存、构建缓存还是 vet 阻止了运行。403 收藏