Go语言技术文章
-
Golang · Go问答 | 2个月前 | go · 路由 · net/http · ServeMux · 兼容性 · Go ServeMux PathValue http.Request.Pattern 路由模式
Go 1.22 引入增强路由后,http.Request.Pattern 可以告诉处理器究竟是哪条 ServeMux 模式命中了请求。本文用 GET /orders/{id} 实验说明 Pattern 与 PathValue 的区别、未命中时的空值行为,以及旧路由兼容判断。415 收藏 -
Go net/url 处理重复查询参数时,应从 url.Values 的 []string 读取并用 Add 追加;本文说明 Get、Set、Encode 与 RawQuery 的顺序边界。415 收藏 -
用一个可复用的 slog Handler 包装层统一过滤 password、token、email 等敏感字段,同时覆盖 WithAttrs、WithGroup 和嵌套 Group,业务日志调用保持不变。415 收藏 -
Go 1.22 引入的 sql.Null[T] 可以把 NULL 与自定义标量类型放在同一个扫描目标中。本文用 OrderState 和订单编码示例说明类型定义、Scan 调用、Valid 判断,以及 driver.Value 和旧版本兼容边界。415 收藏 -
用 Go httptest.ResponseRecorder 测试 Handler 时,区分 Code、Result 和 WriteHeader 的读取时机,准确断言最终状态码。415 收藏 -
使用 Go 标准库 net/mail 解析带显示名的单个邮箱、地址列表和 RFC 2047 编码显示名,区分 Name 与 Address,并说明语法解析和投递校验的边界。415 收藏 -
Golang · Go问答 | 1个月前 | 标准库 · HTTP · go · Cookie · cookie Go net/http Secure SameSite CHIPS Partitioned
Go 的 http.Cookie 增加 Partitioned 后,真正容易出错的是属性组合:Partitioned 必须和 Secure 一起使用,SameSite 则负责跨站发送策略。本文用标准库字段、Valid 检查和 Set-Cookie 序列化拆开这三个边界。415 收藏 -
围绕 go.mod、vendor/modules.txt 与构建模式,整理 Go inconsistent vendoring 的定位、重建和 CI 复查清单。415 收藏 -
Go HTTP 客户端的 goroutine 并发不等于连接会无限并行。本文围绕 Transport 的 MaxConnsPerHost、MaxIdleConnsPerHost 和请求排队关系,给出复用 Client、设置连接预算以及保留超时和响应体关闭的处理方式。415 收藏 -
Go netip.Addr.AppendBinary 适合把 IPv4 或 IPv6 地址追加到已有字节切片。本文说明返回切片、IPv4/IPv6 长度、零值错误和协议字段边界。415 收藏 -
用一个小型 Go 工具说明 bytes.CutSuffix 如何处理固定后缀、如何判断 found,以及空后缀、未匹配和底层切片共享的边界。415 收藏 -
区分Go HTTP客户端单次请求预算、响应体读取与外层重试总耗时,提供绑定Context并限制读体大小的示例,解释阶段超时、错误记录和资源释放。415 收藏 -
新增依赖没有出现在 Go vendor 中时,按模块图确认、重新执行 go mod vendor,再用 vendor/modules.txt 和 -mod=vendor 构建验证,避免手工修改 vendor。415 收藏 -
Go go-flags 使用 *int 字段可以区分未传参数与显式传入 0:未传时指针为 nil,传入 0 时指针非空但目标值为 0;带 default 标签时再结合 IsSet 和 IsSetDefault 判断值的来源。415 收藏 -
介绍 Go Gonum 如何用 simple 构造带权无向图,再调用 path.Prim 生成最小生成树,读取总权重与树边,并说明非连通图和 Kruskal 的使用边界。415 收藏