Go语言技术文章
-
Go 的 http.Request.PathValue 为空,通常不是参数丢了,而是请求没有经过包含命名通配符的 ServeMux 匹配,或测试中的通配符名称不一致。本文从匹配链路、最小实现、httptest 和 SetPathValue 四个场景说明排查与修复方式。501 收藏 -
Go 1.23 起可用 slices.Backward 按降序索引反向遍历切片,无需复制或改变元素顺序。本文给出最小写法、提前停止、索引写回、结构体值语义、空切片和旧版本兼容示例。501 收藏 -
Go 计算大文件 CRC-32 不必先读完整文件。crc32.New 返回可持续写入的 hash.Hash32,配合 io.Copy 即可流式处理;需要进度控制时也能复用缓冲区手动分块。501 收藏 -
从 Google Play 页面核对诗歌本的更新时间、更新说明和产品定位,理解“修复已知问题”能说明什么,以及不能替代哪些详细版本信息。501 收藏 -
Go crypto/rand.Text 当前通常返回 26 个 Base32 字符,但官方只保证至少 128 位随机性并允许未来变长。本文解释长度来源、API 边界和固定长度令牌的显式编码方案。501 收藏 -
围绕 Go 日志管线说明 strings.ToValidUTF8 的正确边界:哪些自由文本适合替换、哪些字段必须拒绝或留存原始字节,以及它与脱敏、控制字符处理和字符集转码的区别。501 收藏 -
解释 Go tls.GetCertificate 在空 ServerName 场景下不触发的原因,拆解 Certificates、SNI 与默认证书回调的选择边界。501 收藏 -
Go database/sql 查询可空字符串时,使用 sql.NullString 同时保留 String 与 Valid,区分数据库 NULL、空字符串和普通文本;本文进一步说明 JSON 输出、写回参数与错误边界。501 收藏 -
围绕 Go database/sql 的事务边界,说明如何区分事务内校验结果与提交后的持久结果,正确处理 Rows、Rollback 和 Commit。501 收藏 -
按充电枪建立巡检记录,分别核对设备状态、计费结果和告警处置,让充电站交接与异常追踪更清楚。501 收藏 -
Go 反射遍历 map 时,MapIter.Value 会返回当前元素的 reflect.Value;Value.SetIterValue 可以在目标 Value 可设置且类型可赋值时直接接收当前值,避免额外构造一个 Value。本文给出复制循环、边界条件与回退清单。500 收藏 -
sync.OnceValue 会把初始化函数的返回值复用给后续调用,因此承载在返回值里的 error 也可能被持续复用。本文区分错误返回与 panic,给出显式重建 getter 和自定义可重试状态两种恢复策略,并说明并发交换与失败风暴边界。500 收藏 -
联合索引列顺序不能只看区分度。本文用订单查询逐项判断等值前缀、首个范围列、排序方向与稳定分页,再结合 key_len、Using filesort 和 EXPLAIN ANALYZE 验证设计。500 收藏 -
Golang · Go教程 | 1星期前 | Go教程 · 可观测性 · net/http · HTTP客户端 · 请求头注入 http.Client Go RoundTripper HTTP耗时 Transport中间件
本文用一个可复用的自定义 RoundTripper 统一注入调用方请求头,演示如何克隆请求避免污染原对象,并分别记录收到响应头与读完响应体的耗时,同时说明并发安全和响应体关闭边界。500 收藏 -
围绕喵次元公开产品资料页列出的三组 DNS 地址,说明它们在页面中的位置、使用边界和下载入口核对方法。500 收藏