Go教程技术文章
-
用 Go 1.23 的 iter.Seq2 为树形索引提供键值遍历时,可让 All 返回中序序列,并让递归 walker 把 yield=false 一路向上返回,从而支持 range break、保持封装且避免构造临时切片。199 收藏 -
Golang · Go教程 | 2天前 | 标准库 · HTTP · 文件上传 · Go教程 · Go LimitReader MaxBytesReader multipart.Reader ReadForm 表单内存
Go multipart 表单的内存限制要分三层:MaxBytesReader 保护整个请求体,ReadForm(maxMemory)控制解析预算,NextPart 配合 LimitReader 才能给单个文本字段设置精确上限。本文用错误类型和清理动作说明三种边界如何组合。193 收藏 -
Go 1.27 为 go doc 增加 package@version 查询形式。本文说明如何查看指定依赖版本的 API,并区分 go.mod、go list 与文档查询的职责。193 收藏 -
Go 后台任务不应只用一条裸 goroutine 启动。本文实现 Start、Cancel、Wait 三段式生命周期,统一任务所有权、取消原因、退出等待、超时关闭和错误返回,并说明适用边界与测试要点。189 收藏 -
通过一个可运行的 Go 内存索引示例,讲清 RWMutex 的读写边界、不可变条目约定、写前准备、读快照、整表替换,以及竞态检测和基准测试方法。187 收藏 -
用一个窄而清晰的 Go 类型约束统一 int、int64 和 float64 求和,并通过近似类型项支持业务命名类型。文章给出 Sum、SumBy、表驱动测试,以及空切片、溢出和浮点精度的边界说明。182 收藏 -
本文设计一个安全的 Go 反射字段赋值 API:从多层指针入口定位可设置结构体,按策略初始化 nil 中间节点,并以严格的类型兼容和稳定错误替代 reflect panic。177 收藏 -
Go 使用 netip.ParsePrefix 解析 CIDR、ParseAddr 解析待判断地址,再调用 Prefix.Contains 即可判断归属;误判时重点检查解析错误、地址族和 IPv4 映射 IPv6。175 收藏 -
Go fuzz 发现失败输入后,真正应该提交到仓库的是 testdata/fuzz/FuzzXxx 下的 seed corpus。本文用一个可复用的流程说明如何重放、修复并让普通 go test 长期回归,同时区分 GOCACHE/fuzz 中的生成缓存。174 收藏 -
Go 的 database/sql 连接池不是把连接数调得越大越好。本文用一段可落地的初始化代码说明 MaxOpenConns、MaxIdleConns、MaxConnMaxIdleTime、MaxConnMaxLifetime 与 DBStats 的关系,并给出等待指标和上下文超时的排查方法。171 收藏 -
pkg.go.dev API 可以直接返回 Go 模块的最新带标签版本。本文用 module、versions 两个接口和 Go 客户端示例,说明如何读取 version、isLatest,如何区分指定版本、main/master 分支和版本列表。170 收藏 -
Golang · Go教程 | 1天前 | go · 时区 · 时间处理 · 本地时间 time.LoadLocation 时区解析 Go time.ParseInLocation Asia/Shanghai
本文解释 Go 的 time.ParseInLocation 如何把不带时区的本地墙上时间按指定 Location 解析,比较 time.Parse 与 Time.In,并说明 IANA 时区加载、RFC3339、夏令时边界和 UTC 存储做法。170 收藏 -
docker init 能快速生成 Go 项目的 Dockerfile、compose.yaml 和 .dockerignore,但生成结果只是起点。本文按构建版本、主程序路径、端口、运行用户和敏感文件五个边界,给出一份可落地的修改清单。167 收藏 -
Golang · Go教程 | 22小时前 | Go教程 · HTTP客户端 · 后端开发 · io.ReadAll io.LimitReader Go HTTP客户端 Go LimitedReader 响应体大小限制
Go HTTP 客户端面对未知或不可信响应体时,不应直接无界 io.ReadAll。本文用 io.LimitReader(max+1) 与一个哨兵字节准确识别超限,说明 Content-Length 预检、压缩响应、读取错误、Body.Close、连接复用及 httptest 边界测试。166 收藏 -
介绍 Go 1.27 goroutineleak profile 的接入方式、持续采样口径和检测边界,帮助定位永久阻塞的 goroutine 泄漏。165 收藏