Go教程技术文章
-
Go使用database/sql遍历Rows时,循环结束不代表读取完整。本文用一个列表函数说明如何同时处理Scan、Close和Rows.Err,避免把部分结果误当成成功响应。203 收藏 -
Go runtime/metrics 的 Value 不能一律按 uint64 读取,应先依据 Description.Kind 选择 Uint64、Float64 或 Float64Histogram;本文整理 KindBad、未知类型和稳定读取流程。203 收藏 -
encoding/json v2 的 omitzero 按 Go 零值或 IsZero 方法省略字段。本文对比 omitempty 在 nil 与空容器上的差异,并说明统一选项与反序列化边界。203 收藏 -
bytes.Clone 返回独立的 []byte 副本,适合把复用缓冲区中的数据保存成安全快照。本文用可复现代码说明 append、切片别名和 bytes.Clone 的差异,并给出基线与边界。202 收藏 -
Go 1.27 为 math/big.Int 增加 Divide,可按 Trunc、Floor、Round、Ceil 计算商和余数。文章用负数除法与中点舍入说明四种模式、恒等式和迁移边界。202 收藏 -
Go context.AfterFunc 适合在上下文取消时触发连接、临时文件等资源的兜底回收,但 stop 只解除回调关联,不等待回调结束。本文用 stop、完成信号和 sync.Once 拆解正常完成与取消竞态。202 收藏 -
用 Go log/slog 在请求边界派生带 request_id 的 logger,结合 With、WithGroup 和 LogAttrs 组织结构化字段,并说明 context、脱敏与并发复用边界。202 收藏 -
介绍 Go http.ResponseController.SetWriteDeadline 的单次响应用法,说明绝对期限、缓冲写入、Flush、ResponseWriter 包装器、ErrNotSupported 与 context、Server.WriteTimeout 的分工。202 收藏 -
Golang · Go教程 | 3小时前 | Go教程 · net/http · Go net/http HTTP连接 ResponseWriter http.ResponseController Hijack
Go 处理器需要接管底层连接时,可以用 http.ResponseController.Hijack 统一读取 ResponseWriter 的能力。本文说明最小调用方式、HTTP/2 与包装器边界,以及成功接管后的缓冲区和连接关闭责任。202 收藏 -
Go 1.23 引入的 slices.Values 可以把切片包装成 iter.Seq。本文从实现、空切片和提前停止三个边界出发,说明它与普通 range、slices.Collect 的连接方式。201 收藏 -
围绕 Go 1.26 Green Tea GC 的小对象标记扫描、同口径基准和 nogreenteagc 回退对照,说明如何判断收益与定位回归。201 收藏 -
Go 标准库 flag.FlagSet 可以为每个子命令建立独立的参数集合。本文用 serve 和 check 示例说明命令分发、参数解析、位置参数校验及错误边界。201 收藏 -
Go 将 JSON 解码到 map[string]any 时,数字默认进入 float64,可能破坏大整数精度。本文用 Decoder.UseNumber 保留 json.Number,并说明何时使用 Int64、Float64、String 或结构体字段。201 收藏 -
Go draw.DrawMask 使用遮罩时边缘颜色变淡,通常是 mask alpha 参与 draw.Over 合成造成的。本文说明 DrawMask 坐标对齐、Over 与 Src 的区别,以及 RGBA/NRGBA 颜色模型的排查方法。201 收藏 -
Decoder.InputOffset 记录的是解码器当前位置,不一定就是坏字段。处理 JSON 解析失败时,先读取 SyntaxError.Offset,再用 InputOffset 和附近字节片段缩小排查范围。201 收藏