Go语言技术文章
-
用 Go testing.T TempDir 创建独立目录,说明 Setenv 与并行子测试的边界,并给出串行环境注入和并行显式传参两种测试方案。480 收藏 -
go work sync 会用 MVS 计算工作区构建列表,再把相关依赖版本同步回各模块的 go.mod。本文给出执行、审查、tidy 分工与 CI 独立验证方法。480 收藏 -
用 go/types.Eval 查询源码位置处表达式的类型和值,讲清 FileSet、Package、Pos 的配合方式、TypeAndValue 读取方法与 Check 的边界。480 收藏 -
Golang · Go教程 | 1天前 | docker · CGO · Go教程 · CGO_ENABLED Docker Buildx cgo交叉编译 Go交叉编译镜像 多架构镜像 GNU交叉编译器
面向含 cgo 的 Go 项目,比较关闭 cgo、交叉编译器镜像和原生多架构节点三种路线,给出 amd64/arm64 GNU 工具链映射、多阶段 Dockerfile、Buildx 构建与可重复性验收方法。480 收藏 -
Go test -race 通过并不等于业务状态一定一致。本文从执行覆盖、同步关系和多字段不变量三层排查数据异常,并给出可复查的修复清单。479 收藏 -
Go math/bits.Mul 返回 hi 和 lo 后,如何判断乘积是否超出低半部,以及怎样用 Mul64、math/big 重建并核对完整结果。479 收藏 -
sort.SliceStable 会在原切片上稳定排序,不会先复制整份元素;如果要保留原顺序,需要先复制切片,但嵌套指针仍需单独深拷贝。479 收藏 -
Go 1.22 引入 reflect.TypeFor 后,泛型函数可以直接拿到类型参数 T 对应的 reflect.Type。本文用一个小型类型描述器说明 TypeFor、TypeOf、Kind 和 Implements 的边界。479 收藏 -
Go regexp 的 Index 系列方法返回的是原字符串字节区间。本文用完整匹配和捕获组两个示例,说明如何安全切回原文、处理负数下标,并把中文文本的位置转换为字符序号。479 收藏 -
Go atomic.Value 的零值 Load 可以返回 nil,但 Store(nil) 会 panic;本文说明首次 Store 如何固定具体类型,以及如何用结构体或指针安全表达空配置状态。479 收藏 -
Go 服务端关闭 HTTP/2 后,客户端仍可能复用已经建立的 HTTP/2 连接。本文区分协议策略与连接生命周期,给出 Server.Protocols、Transport 清理和 httptrace 验证方法。479 收藏 -
Go 的 time.Time 同时承载墙上时间和进程内单调读数,但 JSON 只序列化可跨进程解释的日历时刻。本文说明丢失原因,以及持久化时间、耗时测量和时间比较的正确分工。479 收藏 -
从本地快速改动与跨环境复现两个联调目标出发,对比 Go Modules 的 replace 和 alpha/beta 预览版本,给出选择、检查与收口方法。479 收藏 -
slices.Clip 会把 Go 切片的 cap 收紧到 len,避免后续 append 复用多余容量;但它不复制底层数组,真正要释放长期持有的大数组仍需建立独立副本。478 收藏 -
testing.T.Cleanup 会在当前测试及其子测试完成后执行,多个回调按后注册先执行。本文用 t.Run、t.Name 和事件记录说明父子测试清理归属、注册顺序、并行子测试边界及常见误区。478 收藏