Go语言技术文章
-
用 maps.EqualFunc 比较不同值类型的 Go map,讲清键类型约束、eq 回调、string 与 []byte 转换、缺键和性能边界。249 收藏 -
解释 t.Parallel 与进程级环境变量的冲突边界,给出显式配置传递、独立测试资源和 exec.Cmd.Env 子进程隔离方案。115 收藏 -
maps.Clone 只复制 map 的第一层键和值。本文用切片、map、指针和结构体示例拆开嵌套引用边界,并给出需要独立状态时的深复制写法与检查清单。306 收藏 -
go test 显示 cached 却没有感知输入文件变化,通常是依赖没有进入测试缓存键。本文说明模块内文件、外部输入和环境变量的处理方法,并给出诊断与 CI 落地方案。174 收藏 -
maps.All 返回绑定原映射的惰性迭代器,并不会在创建时复制数据。本文从修改时点、迭代中变更和并发边界说明真实语义,并给出 maps.Clone 与有序快照写法。445 收藏 -
Go 的 replace 可以替换间接依赖,但它只改变主模块依赖图中的模块内容来源;是否进入图仍由 require 和模块图决定。本文用 MVS、go mod graph 与 go list -m all 给出判断方法。208 收藏 -
slices.SortedFunc 会收集迭代器并按自定义比较函数排序,但不保证同键元素的原始顺序。本文通过订单案例解释 SortedStableFunc、显式次级键、map 输入顺序与严格弱序比较器的选择。236 收藏 -
Golang · Go问答 | 2天前 | 依赖管理 · go · go work sync go work vendor Go workspace inconsistent vendoring Go依赖同步
Go 多模块工作区出现 inconsistent vendoring 时,关键不是手改 vendor/modules.txt,而是先确认 GOWORK 和 use 范围,再同步工作区构建列表、整理模块依赖并重建 workspace vendor。本文给出可复用的排查、同步和 CI 验证步骤。192 收藏 -
slices.Collect 会把惰性 iter.Seq 完整物化为新切片,并从 nil 切片逐项 append。本文给出槽位、引用载荷与扩容峰值的估算方法,以及已知数量时用 AppendSeq 预分配、数量未知时限量或流式处理的写法。180 收藏 -
从 go env 确认 GOMODCACHE 实际路径,区分 GOPATH/pkg/mod 与 GOCACHE,再用父目录、属主和最小写入测试定位权限错误,并给出迁移与复查方案。490 收藏 -
讲清 Go slices.Chunk 的固定大小切分、底层数组别名、cap 裁剪、append 行为,以及何时应该用 slices.Clone 保存独立批次。234 收藏 -
用最小配方修复 iter.Seq2[T,error] 的错误返回链,覆盖数据源、转换适配器、消费端与 Pull2 的常见吞错位置。383 收藏 -
对比顺序 Concat、iter.Pull 与预收集三种连接方式,重点说明消费者提前停止时 yield(false) 如何传回数据源并触发资源释放。279 收藏 -
iter.Pull 把 push 迭代器转换为 next 与 stop 两个函数。只要没有消费到序列末尾,就必须调用 stop;本文从提前返回、并发误用和 goroutine 观测三个方向定位残留。488 收藏 -
以带计时器资源的 iter.Seq2 为例,说明 Pull2 的 next、stop、生产者 defer 和提前退出如何配合,给出可迁移的资源释放模板。333 收藏