-
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 的适用边界。
-
Go url.URL.Redacted 会像 URL.String 一样重组地址,但只把 u.User 中的密码替换为 xxxxx。本文用解析、日志和错误处理场景说明如何安全输出带凭据的 URL,并厘清查询参数、片段和真正请求发送之间的边界。
-
用 netip.ParseAddr 与 IsMulticast 判断 IPv4、IPv6 和映射地址是否为组播,解释零值、未指定地址以及 IsGlobalUnicast 的区别,并提供配置分类写法与边界样例。
-
Go 的 url.JoinPath 适合在已有 URL 上拼接路径段并清理多余斜杠、点段,同时保留 base 中的查询参数和片段。本文说明路径段转义、错误处理、URL.JoinPath 选择和常见边界。
-
Go netip.AddrFromSlice 可以把 4 字节或 16 字节切片解析为 netip.Addr。本文说明 IPv4、IPv6、长度错误、IPv4 映射 IPv6 与 AddrFrom4、AddrFrom16、ParseAddr 的选择边界。
-
Go runtime/debug.SetTraceback 用来调整未恢复 panic 或运行时错误退出前的堆栈详情。本文梳理 GOTRACEBACK 各级别、运行时设置的限制,以及开发、测试和生产环境如何选择诊断输出。
-
Go netip.Addr.Prev 返回当前 IP 之前的地址,并在地址空间边界返回零值。本文说明如何解析输入、区分 Addr{} 与 0.0.0.0/::、遍历 IPv4/IPv6 地址,以及处理带 zone 的 IPv6 地址。