Go教程技术文章
-
Go math/big.Float 应在写入数值前调用 SetPrec 设置二进制精度,再用字符串或有理数输入并让目标值承接运算;文中同时说明 Prec、Mode、Acc 的判断方法。313 收藏 -
Go 的 math/big.Rat 用任意精度分子和分母保存有理数,适合金额比例、配额和分数计算。本文说明如何创建、解析、运算和格式化 Rat,并划清与 float64 及浮点输出的边界。312 收藏 -
用 Go 的 http.ServeContent 处理 Range 请求,关键是传入支持 Seek 的 io.ReadSeeker,并通过 206、Content-Range、Content-Length 和 416 判断区间是否读取正确。312 收藏 -
围绕 Go os/exec 的 StdoutPipe 说明 Start、读取、Wait 的正确顺序,并区分输出读取错误、退出错误与 stderr 诊断信息。312 收藏 -
Go gzip.Reader 默认会连续解压拼接成员。本文用 Multistream(false)、bufio.Reader 和 Reset 逐段取得每个成员的 Header 与正文,并加入单成员大小限制、错误处理和安全落盘边界。312 收藏 -
Golang · Go教程 | 1个月前 | golang · 服务端 · 故障排查 · net/http · 连接泄漏 StateIdle ConnState Go net/http StateHijacked
Go net/http 的 ConnState 能记录连接从新建、活跃、空闲到关闭的状态变化,但它不是按请求计数的万能监控器。本文用一个连接数持续上涨的场景,建立状态计数、识别 Hijacked 长尾,并用复现和回收检查确认问题是否真正消失。311 收藏 -
Go 服务收到请求取消后,如何让审计写入、指标上报等短收尾任务继续完成?用 context.WithoutCancel 保留值但切断取消信号,并补上独立超时。311 收藏 -
Go 1.27 的 HTTP/1 Response.Body 在 Close 时会有限度排空未读内容,以提高连接复用机会。本文用读取边界、Transport 配置和复查指标说明该行为能解决什么,哪些场景仍要显式限制响应体。311 收藏 -
本地模块修改后 Go 仍使用旧版本时,按 GOWORK、go.work 的 use 路径、go list 目录和 GOWORK=off 对照逐层定位工作区边界。311 收藏 -
filepath.IsLocal 能用纯词法规则拒绝绝对路径、空路径和会逃出当前目录的路径。本文给出安全拼接函数、跨平台边界、内部点段判断、Windows 保留名说明,以及符号链接场景下使用 os.Root 的加强方案。311 收藏 -
Go 服务读取数百 MB 的 JSON 数组时,直接 json.Unmarshal 往往先把整份数据堆进内存。用 json.Decoder 按元素读取、限制批次大小并记录错误行,可把峰值堆从输入规模中拆出来;文中给出可运行示例和压测核对方法。310 收藏 -
用 netip.ParseAddrPort 统一校验 host:port 输入,拆开 IPv4、IPv6 方括号、缺失端口和端口越界等边界,并给出可复用的 Go 代码。310 收藏 -
Go 的 parser.SkipObjectResolution 会跳过已经过时的语法级对象解析,减少解析阶段的 CPU 和内存开销。本文用 ParseFile、ast.File 和 go/types 的最小示例说明它保留什么、舍弃什么,以及何时必须补上类型检查。310 收藏 -
Go 的 log/slog 可以把日志级别集中交给 HandlerOptions 管理,再用 LevelVar 在运行时切换,而 ReplaceAttr 适合统一字段格式。本文用一条可运行的配置链说明三者的职责边界、切换时机与验收方法。310 收藏 -
Go 示例测试可以同时承担文档和回归用例职责:用 Example 命名关联文档对象,用 Output 注释固定标准输出,必要时用 Unordered output 放宽顺序,再把示例纳入 go test ./...。310 收藏