Go语言技术文章
-
泛型代码里通过 reflect.TypeOf((*T)(nil)).Elem() 获取类型既绕又容易误读。本文用 Go 1.22 的 reflect.TypeFor[T]() 重写一个注册表实验,比较 nil、指针和接口类型的结果,并给出版本兼容与测试边界。259 收藏 -
Go 的 url.Values 既能表达同名重复参数,也能表达单值参数,但 Add、Set 和 Encode 的组合会直接影响服务端拿到的结果。本文用标签筛选接口说明参数如何构造、编码、解析和验收。386 收藏 -
Go 的 time.Ticker 适合固定节拍触发工作,但当一次任务比 tick 间隔更长时,调度、积压和取消边界很容易混在一起。本文用一个定时刷新任务说明 Stop 与 Reset 的正确位置,并给出带背压、可退出、可观测的写法。185 收藏 -
Golang · Go问答 | 3星期前 | 工具链 · go语言 · Go教程 · 版本升级 · 代码重构 · Go 1.26 go fix modernizer 代码升级 new 表达式 Go 代码迁移
Go 1.26 重写了 go fix,把它从旧式修复命令变成基于 go/analysis 的 modernizer 工具。本文用一个含有可选字段和自定义 newInt 函数的 Go 模块,演示如何预览建议、限定改动范围、检查 go.mod 版本并完成回归。147 收藏