-
Go httptrace.ClientTrace 可以在 GotConn 回调中记录连接是否复用。本文说明 Reused、WasIdle、IdleTime 的区别,以及同一个 http.Client、响应体关闭和 HTTP/2 场景下的排查边界。
-
Go http.Request.GetBody 不是当前请求体的别名,而是为客户端重定向或手动重试重新生成请求体的工厂。本文说明 NewRequest 何时自动填充它,以及自定义 io.Reader 如何保留可重放能力。
-
Go runtime.LockOSThread 只适用于依赖线程局部状态的操作系统服务或非 Go 库调用。本文说明判断条件、成对解锁、专用锁定 goroutine 以及不能恢复线程状态时的退出边界。
-
Go os.Geteuid 返回当前进程的有效用户 ID。本文用一个跨平台示例区分有效 UID、真实 UID 与有效组 ID,说明 Unix 与 Windows 的返回差异,并解释为什么它不能单独充当权限授权依据。
-
Go token.File.Offset 用于把文件内的 token.Pos 转回从 0 开始的字节偏移。本文从 FileSet、File.Pos 与 File.Offset 的关系讲起,结合 AST 位置、NoPos、越界位置和 UTF-8 字节列,给出适合生产诊断与源码工具的边界写法。
-
Go 的 go/format.Node 可以把 AST 节点按 canonical gofmt 风格写入 io.Writer。本文从 parser.ParseFile 开始,说明 FileSet、节点范围、错误处理,以及 Node 与 Source 的取舍。
-
Go ast.FileExports 会原地裁剪 ast.File,只保留导出的顶层声明,并继续清理导出类型中的非导出字段和方法。本文从源码解析开始,给出完整的裁剪与格式化示例,再说明函数体、注释、返回值和 FilterFile 的边界。
-
Go regexp.Regexp.LiteralPrefix 可以提取所有匹配都必须以它开头的字面字符串,并用 complete 区分完整正则与前缀过滤条件。本文用固定开头、字符类、分支和 HasPrefix 预过滤示例说明它的边界。
-
Go image/png.Encoder.BufferPool 可以复用 PNG 编码过程中的临时 EncoderBuffer。本文用 sync.Pool 适配 Get/Put,说明批量编码接入方式,以及并发、错误路径、超大图片和固定容量边界。
-
Go log/slog.Logger.With 会返回带公共属性的派生 logger,适合复用组件名、请求 ID 和任务 ID。本文按字段生命周期说明 With 与单条日志参数的分工,并给出原 logger、并发请求和 Handler 边界的实用写法。
-
讲清 Go database/sql.Tx.StmtContext 如何把已有的 DB 级预编译语句绑定到当前事务,并比较 Tx.PrepareContext、ExecContext 的适用场景、上下文边界和关闭时机。
-
Go database/sql/driver.Stmt.NumInput 决定 database/sql 是否能在执行前检查占位参数数量。本文用驱动实现视角说明返回非负数与 -1 的差异,帮助定位参数个数错误到底发生在预检阶段还是数据库执行阶段。
-
Go 1.21 起,crypto/tls 提供 QUICServer 与 QUICConn,负责 TLS 握手这一层,不替代 QUIC 的 UDP 拥塞控制与数据包调度。本文从资产、信任边界和事件循环出发,说明服务端如何创建连接、处理握手事件与安全关闭。
-
Go x/sync/errgroup.SetLimit 可以把活动 goroutine 数量限制在指定上限。本文从批量任务的实际场景出发,说明 SetLimit 与 Go、TryGo、WithContext 和 Wait 的配合方式,以及限制值、错误取消和任务提交时机的边界。
-
Go reflect.Value.Seq 可以把运行时才确定类型的数组或切片暴露为 iter.Seq[reflect.Value]。本文说明如何用 IsValid、CanSeq 和 range 安全遍历元素,并区分 Seq 与 Seq2 的适用边界。