-
Go Ticker 动态调整周期不必重复创建对象,使用 Reset 复用同一条通道即可。本文说明周期校验、单一拥有者、暂停恢复和 Stop 清理的边界。
-
Go slices.Sorted 可以把 iter.Seq 中的有序元素收集成新的排序切片,适合整理 map 键、迭代器结果和需要稳定输出的集合。本文说明最小写法、复制边界、空输入、重复值以及 SortedFunc 与原地排序的选择。
-
go-vcard 用 Card 表示一张联系人卡片,多个电话号码应作为同名 TEL 字段追加保存。本文演示 AddValue 与带 Params 的 Add 写法,并说明 SetValue 为什么会覆盖已有号码。
-
Go container/heap 修改优先队列元素后,不需要先 Remove 再 Push。维护 Item.index,在修改 priority 后调用 heap.Fix,就能以 O(log n) 恢复堆序;本文同时说明 Swap、出队和失效索引的边界。
-
Go ast.IsExported 只判断名称的首个 Unicode 字符是否为大写字母。本文说明如何在 AST 遍历中读取 ast.Ident.Name,比较包函数、节点方法与 token.IsExported,并梳理空名称、非法输入、Unicode 和类型可见性的边界。
-
区分 Go defer 普通参数的登记时求值与匿名闭包的延后读取,说明变量变化、资源清理和命名返回值修改应该如何设计。
-
Go regexp 默认采用左优先匹配;如果同一起点有多个候选并希望优先拿到更长结果,可以在共享使用前调用 Regexp.Longest。本文用最小示例对比默认模式、Longest 与 CompilePOSIX 的边界。
-
Go httputil.DumpRequestOut 能把客户端请求按接近线路的形式导出,并包含 Transport 追加的请求头。本文用请求副本和固定字段脱敏,解决调试请求头时泄露 Authorization、Cookie 等敏感值的问题。
-
Go 本地 HTTPS 测试需要自签名证书时,可以用 crypto/x509.CreateCertificate 直接生成带 localhost SAN 的证书。本文比较三种方案,并拆解模板、签名者、DER 与 PEM 的关系。
-
Go 1.21 引入 maps 包后,配置映射可以用 maps.Equal 比较键值对;本文说明基本用法、nil 与空 map 边界,以及值为切片时如何改用 maps.EqualFunc。
-
Go errors.Join 可以把多个非 nil 错误组合成一个可继续用 errors.Is 和 errors.As 检查的错误树。本文解释为什么全 nil 输入会得到 nil、多个错误的文本为何换行,以及如何在批量处理里保留每个底层错误。
-
Go crypto/x509.ParsePKIXPublicKey 面对的是 PKIX SubjectPublicKeyInfo 公钥数据。本文从 PUBLIC KEY PEM 输入出发,说明如何解码、解析并用类型分支识别 RSA、ECDSA、Ed25519、ML-DSA 与 X25519 公钥,顺带厘清它和完整证书、PKCS#1 公钥的边界。
-
用 github.com/pkg/sftp 区分单文件请求上限、文件任务池和读写方向,并用 ReadFromWithConcurrency 精确控制一次传输的并发度。
-
把配置中的超时统一写成 500ms、2s 这类带单位字符串,在 Go 程序入口解析为 time.Duration,再复用于 context、HTTP 客户端和定时任务,避免裸整数造成单位误读。
-
用一个可复用的 Go 最小示例说明 errors.Join 如何同时保留多个底层错误,解释 nil 处理、错误树检索、errors.Is/As 的选择,以及不要误用 errors.Unwrap 的边界。