-
夏令时回拨会让同一个本地时钟读数出现两次。本文解释 Go time.Date 为什么不保证选择哪一次,并给出用显式 UTC 偏移消歧、保存和展示时间的实用写法。
-
Go log/slog 的 WithGroup 会为 Logger 的后续属性建立命名空间。本文用 TextHandler 与 JSONHandler 对比嵌套字段、说明空组行为,并给出子系统日志的组织方式。
-
Go 表驱动测试调用 t.Parallel 后,子测试可能在外层循环继续修改变量时才真正执行。本文从调度语义、Go 1.22 循环变量规则和指针切片共享边界说明原因,并给出兼容旧模块的修复写法。
-
Go 1.27 的 go test -json 会为 output 事件补充 OutputType。本文说明如何区分普通输出、frame、error 和 error-continue,并用 Go 按行消费交错的测试 JSON 事件。
-
在 Gonum stat/distuv 中,Prob(x) 表示分布在 x 处的概率密度或点概率,CDF(x) 表示截至 x 的累计分布值。本文用一个 Go 小项目对比两者,并补充 Survival、Quantile 和离散分布的选择边界。
-
go-imap 的 Unselect 只退出当前邮箱而不清理\Deleted邮件;UnselectAndExpunge 实际发送 CLOSE,会静默执行 EXPUNGE。本文用会话状态、数据影响和 Go 封装示例说明两者如何选择。
-
Go 的 time.Ticker.Reset 会从新时长重新安排下一次 tick,但慢接收者、未执行到 Reset 或并发修改都会让观察结果像是旧周期仍在生效。本文用最小示例拆开这些原因,并给出单一重置入口与日志复查方式。
-
Go x/image/font/opentype 中 Size 是点值,DPI 是输出分辨率;两者共同决定 Face 的缩放比例。本文用源码关系、Metrics、GlyphBounds 和绘制坐标说明为什么字号不变时修改 DPI 会让字形变大,并给出参数选择策略。
-
Go select 一旦包含 default,在没有可进行通信时就会立即执行。把它放进消费 for 循环会让循环持续重试,表现为 CPU 升高但没有有效消费。本文从故障症状、阻塞式修复、取消与关闭 channel 处理,到必须轮询时的退避边界,给出一套可直接套用的处理方式。
-
go-pretty/table 的 RowPainter 接收整行并返回 text.Colors,适合按状态或排序位置统一着色。本文说明回调契约、SetRowPainter 的覆盖关系、RowPainterWithAttributes 的行号语义,以及空行和禁色场景的处理。
-
Go SQLX MapScan 适合读取列名不固定的查询结果。本文给出 Queryx、MapScan、Rows.Close 和 Rows.Err 的配合写法,并说明重复列名、NULL 值以及与 StructScan、SliceScan 的取舍。
-
区分go-smtp服务端扩展声明、本地API与会话条件,解释Extension、SupportsAuth、TLS和SIZE判断,并给出不认证不投递的能力快照示例。
-
按依赖变更说明Go vendor不自动刷新的原因,区分模块声明、包引用与模块缓存,给出单模块更新和工作区范围处理方法,并对齐CI构建模式与快照提交。
-
Go TLS 报证书主机名不匹配时,先不要关闭证书校验。本文按连接地址、SNI、SAN、IP 地址、通配符和代理入口逐项核对,并用 VerifyHostname 给出可复用的最小复核代码。
-
使用 go/types 做 Go 静态分析时,Info.Types 只能回答表达式类型。本文用原创示例说明如何初始化 Info.Selections,找到嵌入字段最终对应的 Obj,并用 Index、Recv、Indirect 解释选择路径。