Go教程技术文章
-
Go 自定义错误可实现 Is(error) bool,将多个动态错误码映射为稳定错误族。本文用可重试与资源不存在示例说明浅比较、错误包装和表驱动测试。239 收藏 -
介绍 Go cmp.Or 如何按从左到右的顺序返回第一个非零候选值,并通过配置覆盖示例说明零值语义、comparable 类型约束与不适用边界。239 收藏 -
介绍 Go 业务时区的加载、无偏移时间解析、UTC 存储与地区显示,给出完整示例,并说明时区数据依赖、固定偏移和旧字段迁移的注意事项。239 收藏 -
Go 1.27 的 vet printf 分析器会提示一种容易被忽略的错误包装:错误类型本身实现了 error,却把指针作为 %w 操作数。本文解释它为何影响 errors.As,以及怎样修复并纳入持续检查。239 收藏 -
Golang · Go教程 | 2个月前 | 并发 · HTTP · go · Context · net/http · HTTP中间件 Go教程 context取消 http.Request.Clone WithContext 请求复制
Go 的 http.Request.Clone 和 WithContext 都能得到一份新请求,但复制深度、Header 与 URL 的独立性不同。本文用重试转发和取消场景拆开两者边界,并用测试确认改写不会污染原请求。238 收藏 -
用 Go 1.25+ testing/synctest 测试定时器、异步回调和取消路径,解释 Test、Wait、fake time 的最小用法,以及网络和外部 goroutine 为什么不能直接放进 bubble。238 收藏 -
Go 泛型中的数值约束不只是把 int 和 float64 列出来,还要处理底层类型、~ 运算符、接口组合和类型推断。本文用一个可运行的统计函数拆解约束边界。238 收藏 -
Go 服务在数据库事务提交后发送消息、刷新缓存或调用外部接口时,最难处理的是提交成功与副作用失败之间的时间窗。本文用 Outbox 表、事务内写入、独立投递与幂等消费拆开重试边界,并给出可验证的 Go 实现与验收清单。238 收藏 -
围绕 Go 1.27 泛型方法说明接收者参数、方法参数和类型约束的关系,结合 List[T].Map[R] 讲清类型推断、显式实例化、方法表达式与接口边界。238 收藏 -
testing/quick 默认通过反射生成输入,遇到含不可导出字段的结构体就无法自动构造。本文用自定义 Generator 和 Config.Values 两条路径处理本地类型与 time.Time 等外部类型,并说明随机边界与可复现配置。238 收藏 -
Go HTTP 服务端按 Accept-Encoding 协商 gzip 响应,正确处理 Content-Encoding、Vary、响应头时机和 gzip.Writer 关闭顺序。238 收藏 -
Go 通过握手后的 ConnectionState.LocalCertificate 读取本地证书链。本文区分本地与对端证书,提供 DER 解析与指纹记录示例,说明恢复会话空链、多证书配置和证书轮换的观测边界。238 收藏 -
Go os.Root.OpenFile 可以把文件名解析限制在已打开的根目录下。本文说明如何创建工作区 Root、按相对路径读写文件、选择 flag 与 perm,并处理越界路径、非法权限位和资源关闭问题。238 收藏 -
围绕 encoding/binary.ByteOrder.Uint64 讲清固定 8 字节 uint64 的读取方式、BigEndian 与 LittleEndian 选择、NativeEndian 边界,以及连续记录和短输入的安全处理。238 收藏 -
Go database/sql.DB.Stats 返回的是连接池累计与瞬时状态。本文说明如何读取 InUse、Idle、WaitCount 和 WaitDuration,用连续采样计算等待窗口,并区分连接池触顶与数据库服务器慢查询。238 收藏