Go教程技术文章
-
Golang · Go教程 | 3星期前 | Go教程 · net/http · Go net/http HTTP连接 ResponseWriter http.ResponseController Hijack
Go 处理器需要接管底层连接时,可以用 http.ResponseController.Hijack 统一读取 ResponseWriter 的能力。本文说明最小调用方式、HTTP/2 与包装器边界,以及成功接管后的缓冲区和连接关闭责任。202 收藏 -
sync.OnceFunc 返回的函数不提供是否执行、执行中或初始化成功的查询接口。本文用 atomic.Uint32 设计外部状态,把可观测性与一次性执行职责分开,并处理并发读取与 panic 边界。202 收藏 -
Go fs.Sub 把一个 fs.FS 映射为指定子目录的文件系统视图。本文用 os.DirFS 和嵌入式文件系统说明相对路径、嵌套 Sub、无效路径与不存在目录的边界,并提醒它不是 chroot 级安全隔离。202 收藏 -
Go gofpdf的MultiCell可按固定宽度自动折行。本文给出完整示例,说明每行高度、字体与边距的关系,以及绘制后坐标、中文字体和尾部换行的处理。202 收藏 -
讲清 Go html/template.JSEscapeString 的字符串级 JavaScript 转义边界,用最小示例对比 HTML、JavaScript 与 URL 语境,并说明何时应交给 html/template 自动处理,避免重复转义和不安全的可信类型。202 收藏 -
Go unique.Make 只接受 comparable 类型并返回 Handle,不会替业务规则返回 error。本文用空字符串、nil 指针和不可比较类型说明处理边界,再给出先校验、后规范化、按需保留句柄的工作流。202 收藏 -
解释 Go Readdirnames 正数分批读取中的 io.EOF,展示先消费名称再判断错误的完整代码,并区分非正数读取、业务错误与目录句柄关闭。202 收藏 -
Go 的 png.DecodeConfig 可以先读取 PNG 的颜色模型和宽高,再决定是否创建完整图像。本文说明尺寸准入、Reader 位置重置、内存 Reader 重放和两阶段错误处理。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 收藏 -
Go 1.27 支持具体类型声明带自身类型参数的方法,但接口方法仍不能声明类型参数,泛型方法的某次实例化也不会进入类型的方法集。本文给出普通接口方法、泛型函数和适配器三种组合方式。201 收藏