Go语言技术文章
-
用 Go 1.23 的 iter.Seq2 为树形索引提供键值遍历时,可让 All 返回中序序列,并让递归 walker 把 yield=false 一路向上返回,从而支持 range break、保持封装且避免构造临时切片。199 收藏 -
Go 的 ResponseController.EnableFullDuplex 允许 HTTP/1 Handler 在请求体尚未结束时交错读取与写响应,但它并不 Hijack 底层连接。本文给出逐块读取、逐块确认的完整写法,并说明包装器、截止时间、HTTP/2 与代理缓冲边界。199 收藏 -
Go 的 URL 查询参数同时存在原始字符串和解码后的值。本文用 net/url 拆开 RawQuery、Query 与 ParseQuery 的差异,处理重复键、加号、分号和异常百分号,并给出适合签名、缓存、审计和业务筛选的选择方式。198 收藏 -
Go 类型断言返回 ok=true 只说明接口的动态类型匹配,断言出的指针仍可能为 nil。本文给出双重判断、反射边界、源头修复和回归测试写法。197 收藏 -
go fix 负责源码现代化修复,gofmt 负责标准格式化。本文从执行顺序、分析器依赖和构建配置三个角度解释连续运行产生不同 diff 的原因,并给出可重复的审阅流程。196 收藏 -
Go 1.22 起可以用 reflect.TypeFor[T]() 直接取得泛型参数的 reflect.Type。本文从 TypeOf 的旧写法切入,说明接口、指针、切片和结构体元数据的读取方式,并给出泛型元数据缓存与静态类型边界的实用写法。196 收藏 -
Go 测试的偶发失败不能只靠重复运行排查。本文区分测试数据种子与 go test 的 -shuffle 种子,给出局部 rand.Rand、顺序记录、CI 复现命令和诊断清单,并说明 map 迭代、并发调度与外部状态为何不能靠一个种子完全复现。195 收藏 -
go.mod replace 用于当前主模块替换某个依赖的内容来源,go.work 则把多个本地模块聚合为同一工作区的主模块集合。本文比较两者的生效范围、冲突规则、适用场景和发布边界,并给出 GOWORK=off 验证方法。195 收藏 -
Go 变量仍在作用域不等于对象仍然可达:函数参数或接收者可在最后一次提及后失去活性,weak.Pointer.Value 随后可能返回 nil。本文还原根因,并给出强所有者与 runtime.KeepAlive 的正确放置方式。195 收藏 -
Go 服务不必在每次请求中重复调用 time.LoadLocation。本文用 sync.Once 缓存可共享的 *time.Location,并说明 IANA 时区、UTC、Local、错误处理以及并发首次初始化的边界。195 收藏 -
json.Decoder.Decode 返回 nil 只说明成功读取了下一个 JSON 值,并不保证输入流已结束。本文用二次 Decode 与 io.EOF 检查,区分空白结尾、第二个 JSON 值和非法尾随字节。194 收藏 -
Go 进程内的反射缓存应优先直接使用 reflect.Type 做键,因为 Type 可比较并表示精确类型身份,而 Type.String 与名称并不保证唯一。本文从错误命中复盘出发,说明指针归一化、泛型实例、匿名类型及跨进程模式键的取舍。194 收藏 -
Golang · Go教程 | 6天前 | 标准库 · 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 收藏 -
Golang · Go问答 | 1天前 | 依赖管理 · go · go work sync go work vendor Go workspace inconsistent vendoring Go依赖同步
Go 多模块工作区出现 inconsistent vendoring 时,关键不是手改 vendor/modules.txt,而是先确认 GOWORK 和 use 范围,再同步工作区构建列表、整理模块依赖并重建 workspace vendor。本文给出可复用的排查、同步和 CI 验证步骤。192 收藏