Go教程技术文章
-
用一个小型内存复制场景说明 Go bytes.Reader.WriteTo 的调用方式、返回值、游标推进和错误边界。466 收藏 -
Golang · Go教程 | 6天前 | 标准库 · HTTP服务 · Go教程 · 可观测性 · Go expvar expvar.Publish 运行指标 expvar.Func debug vars
Go 的 expvar.Publish 可把实现 Var 的对象注册到全局表,并由 /debug/vars 输出 JSON。本文用 Func、Int 与 Map 组合自定义运行快照,并说明路由和安全边界。466 收藏 -
讲清 Go token.FileSet.PositionFor 如何把 token.Pos 转成文件名、字节偏移、行号和列号,并比较 adjusted 参数与 //line 指令的实际影响。466 收藏 -
sync.Pool 在池空时只有 New 非 nil 才会创建默认对象。本文用 bytes.Buffer 说明正确初始化、typed nil 陷阱、借用归还封装、状态重置和测试边界。466 收藏 -
持续同步 pkg.go.dev API 时,不要把 nextPageToken 当永久断点。本文用 Go 完整消费分页、稳定去重、有限重试,并在全量成功后原子替换本地索引。466 收藏 -
Go bytes.Reader 同时支持顺序读取、绝对偏移读取和定位。本文区分 Len、Size、ReadAt、Seek 的职责,并用 io.SectionReader 固定下游可见的缓冲区间。465 收藏 -
Go database/sql 复用 sql.Stmt 时,先按 DB、Conn、Tx 区分所有权,再把创建与关闭绑定到同一生命周期;文章给出初始化复用、Rows清理、事务执行和停机收尾的实用写法。465 收藏 -
Go context.AfterFunc 会在取消后异步执行回调。本文用 stop 返回值、sync.Once 和 done channel 说明如何收敛外部资源的释放所有权,避免取消竞态下重复关闭或提前返回。465 收藏 -
slog.HandlerOptions 的 AddSource 能把调用文件和行号加入日志,配合 LevelError 可构造只输出错误的 Handler。本文给出路径精简、包装函数修正、结构测试和性能取舍的完整流程。465 收藏 -
Go 的 utf8.DecodeLastRuneInString 处理空字符串时返回 RuneError 和 size=0。本文用返回值对照、UTF-8 多字节裁剪示例,区分空输入、合法 U+FFFD 与非法尾字节。463 收藏 -
通过包装 tls.ClientSessionCache 记录 Get、Put 与命中,再用 ConnectionState.DidResume 区分缓存命中、TCP 连接复用和真正的 TLS 会话恢复。463 收藏 -
围绕 Go maphash.Hash 的内部缓冲、Reset、String/Bytes 和 sync.Pool,说明如何按输入形态复用哈希状态并定位真正的堆分配来源。463 收藏 -
Go 1.26 重写 go fix,以 modernizer 和 Go analysis 框架批量改写受支持的旧式标准库与语言用法。本文给出 fixer 盘点、-diff 预览、分批落盘、多平台覆盖和测试审查清单,并说明它不会自动迁移所有废弃 API。462 收藏 -
Golang · Go教程 | 17小时前 | 标准库 · 配置管理 · 并发编程 · go语言 · 工程实践 · Go并发 延迟加载 配置快照 sync.OnceValue sync.OnceValues
sync.OnceValue 适合把只加载一次的固定配置封装成并发安全的延迟函数。本文给出值语义快照写法,并说明引用类型、错误缓存、panic 重放、日志和热更新边界。462 收藏 -
filepath.WalkDir 的错误不只来自文件本身。本文按根路径、目录读取和子项回调三类入口,讲清 d 为 nil、SkipDir 与 SkipAll 的处理边界。460 收藏