-
Go database/sql.Rows 读取含 NULL 的多行结果时,不能把可空字段直接扫描到普通字符串或数字。本文用 sql.Null*、Scanner、any 和完整的 rows 生命周期示例,说明如何保留值与 Valid 状态,并处理动态列、提前退出和多结果集边界。
-
Go x509.OID.Equal 比较的是对象标识符的组件序列,而不是展示文本。本文从 OIDFromInts 构造开始,说明相同组件、不同组件、空 OID 以及与 asn1.ObjectIdentifier 比较时的 API 边界。
-
围绕 archive/tar.Writer.AddFS 说明 fs.FS 目录遍历、嵌套条目错误、fs.PathError 定位、Close 收尾和特殊文件边界,给出可复用的 Go 打包处理方式。
-
用 testing/fstest 的 MapFS 在内存中准备文件内容,测试 Go 文件读取、目录边界和缺失文件分支;再用 TestFS 检查自定义 fs.FS 的基本行为。
-
Go 的 encoding/xml.Marshal 会按 XMLName、xml.Name、字段标签和类型名决定元素名称。本文用一个订单报文示例说明如何固定根节点、表达命名空间、把字段输出成属性,并用嵌套路径组织子元素。
-
Go 多账号 HTTP 调用要把每个登录身份绑定到独立的 cookiejar.Jar 和 http.Client。本文说明如何复用同一会话、共享 Transport、重置 CookieJar,并用安全的 Cookie 名称检查排查登录态串号。
-
用afero MemMapFs为文件读取测试准备独立目录,示例讲清父目录创建、文件写入和实例注入,并区分正常内容、缺文件与真实磁盘测试的适用场景。
-
Go strings.Replacer.WriteString 接收 io.Writer,直接写出替换后的文本,并返回实际写入字节数与错误。本文用 bytes.Buffer 和部分写入 Writer 说明调用方式、错误判断及与 Replace 的选择。
-
math/bits.Add64 用两个 uint64 和一个 0 或 1 的输入进位计算固定宽度和,同时返回 sum 与 carry-out。本文从返回值契约讲到两个 64 位字的 128 位加法,说明如何传递低位进位并处理最终溢出。
-
用 Go Ants 配置 WithNonblocking(true),区分 ErrPoolOverload 与 ErrPoolClosed,并比较拒绝、有限重试和外部有界队列三种池满处理方式。
-
通过SubscribeMultiple为多个主题过滤器分别指定QoS,示例说明Token等待、逐项授权返回码、超时不确定性,以及权限、重连与共享回调的职责安排。
-
Go beep 暂停音频流不需要改写底层 Streamer,使用 beep.Ctrl 包装后切换 Paused 即可;播放中的对象要在 speaker.Lock 与 Unlock 之间修改,并区分暂停静音、继续播放和彻底停止。
-
用 Go 1.24 的 runtime.AddCleanup 管理已有 []byte 缓冲区:从 sync.Pool 复用容量,显式 Close 与 GC 兜底共享幂等释放协议,并说明引用边界、Stop、KeepAlive 和并发约束。
-
Go container/list.InsertBefore 返回 nil,通常不是插入位置写错,而是 mark 并不属于当前 List。本文从 Element 的所属关系和标准库源码出发,说明跨链表、已移除节点、nil 返回值与安全插入写法。
-
sync.OnceValue 只返回一次计算得到的 T,不会自动告诉调用方初始化是否已经发生。当 0、空字符串或 nil 也是合法业务结果时,应把 value、ready 或 err 放进同一个返回结构中,再由 OnceValue 统一缓存。