Go教程技术文章
-
Go 的 http.Client 不会替一次性请求体自动保存可重试副本。本文说明 Request.GetBody 的作用、NewRequest 对常见 Reader 的自动处理、自定义 body 的实现方式,以及重试次数、响应关闭和幂等性边界。226 收藏 -
用 Go runtime/trace 的 Start/Stop 包住被选中的请求窗口,配合进程级互斥和固定落盘顺序,生成可用的 trace 文件并避开并发冲突。226 收藏 -
Go net/url 的 URL.JoinPath 适合把已有 URL 与多个路径片段组合,并统一清理多余斜杠、. 和 ..。本文说明路径片段转义、查询参数保留和与 ResolveReference 的边界。225 收藏 -
Go 标准库 encoding/ascii85 可以把 ASCII85 文本还原为字节数据。本文从包装标记、Decode 返回值、NewDecoder 流式读取和异常输入四个方面说明怎样安全完成解码。225 收藏 -
Go log/slog.Group 可以把多个属性收拢到同一个日志组中。本文从请求日志场景说明 key、属性参数、空键和动态属性的处理方式,并比较 Group、GroupAttrs 与 WithGroup 的选择边界。225 收藏 -
Goose 默认按分号识别 SQL 语句,存储过程内部的多个分号可能导致迁移被拆开。本文说明如何用 StatementBegin 和 StatementEnd 包住完整过程,并区分 Up、Down、NO TRANSACTION 与 MySQL multiStatements 的职责。225 收藏 -
Go fmt.Errorf 通过 %w 同时保留任务上下文与错误原因,调用方使用 errors.Is 和 errors.As 判断类别并提取详情。结合配置解析示例说明多层包装、多原因与 nil 的边界。225 收藏 -
Golang · Go教程 | 14小时前 | 标准库 · pprof · Go教程 · Go Debug pprof 性能诊断 runtime/pprof goroutine profile Profile.WriteTo
Profile.WriteTo 的 debug 参数控制输出格式而不是采样数量:debug=0 适合保存给 pprof 工具,debug=1 适合直接阅读,goroutine profile 的 debug=2 才有专门的 panic 风格堆栈含义。本文用最小 Go 片段说明三种级别、Writer 错误和选择边界。224 收藏 -
讲清 Go GetConfigForClient 返回配置后的会话票据密钥继承、SetSessionTicketKeys 轮换和会话恢复校验边界,给出可落地的配置示例与上线清单。223 收藏 -
Go token.File.Offset 用于把文件内的 token.Pos 转回从 0 开始的字节偏移。本文从 FileSet、File.Pos 与 File.Offset 的关系讲起,结合 AST 位置、NoPos、越界位置和 UTF-8 字节列,给出适合生产诊断与源码工具的边界写法。223 收藏 -
用一个任务集合实现 Go iter.Seq 范围迭代器,说明 for range、提前停止、闭包分配与并发修改边界,帮助批处理减少临时切片。223 收藏 -
用一个自定义 ServeMux 示例说明 Go expvar 如何暴露 JSON 运行指标,并按 404、空结果、重复注册和动态值异常逐项排查。223 收藏 -
讲清 go/types.Config.Check 为什么需要 Importer,以及怎样接入 importer.Default 解析导入包、收集类型信息并处理检查错误。222 收藏 -
通过 Go net.Resolver 隔离 DNS 策略,区分 PreferGo、Dial 与 StrictErrors,并将解析器绑定到 HTTP 客户端。结合代码解释超时、代理、连接复用及配置切换的适用边界。222 收藏 -
本文从可选配置键值拆分的排查现场出发,说明 strings.Cut 的 found 返回值、空输入处理、缺少分隔符和空字段边界,并给出可复用的 Go 解析示例。222 收藏