Go语言技术文章
-
交叉编译后不要只看构建机上的 GOOS 和 GOARCH。本文用 go env、文件格式、go version -m 和 build ID 四层证据,确认最终二进制实际面向的操作系统与 CPU 架构。396 收藏 -
讲清 Go http.Transport 的 IdleConnTimeout 如何按 keep-alive 空闲时长回收连接,并区分连接数量、响应头等待、请求总超时和主动清理。396 收藏 -
用 Go 的 bytes.Buffer 拼接多段二进制数据时,可以预留容量、连续 Write,并在结果消费或复制后 Reset 复用。本文重点说明 Bytes 的别名生命周期和安全边界。396 收藏 -
Go 泛型接口报错时,关键不是调用语法,而是类型参数的实际方法集。本文用 Buffer 和 Sink 示例说明 T 与 *T 的差异、编译期断言及指针接收者的取舍。396 收藏 -
Go math/big.Int.QuoRem 对负数采用向零截断的 T-除法。本文用 x=y*q+r 验算商和余数,并对比 DivMod 的非负余数语义,补充大整数对象复用和除零处理要点。396 收藏 -
Go test -run 匹配不到子测试时,重点检查正则是否按父测试和子测试分段、斜杠是否被误当层级,以及名称空格是否已规范化。396 收藏 -
围绕 Go filepath.Rel 讲清相对路径计算前提、Windows 跨盘错误、VolumeName 与 IsAbs 判断,以及失败后的绝对路径或业务错误回退方案。396 收藏 -
解析 Go context.WithoutCancel 保留值却切断取消、截止时间和 Cause 的精确语义,并给出独立超时、工作队列与服务关闭边界的实践方案。396 收藏 -
Go 服务 CPU 没满但请求排队、延迟升高,可能是共享锁竞争而不是算力不足。本文按运行手册说明如何判断信号、短时开启 mutex profile、定位持锁路径、做低风险修复并验证回归。395 收藏 -
Go 服务返回静态 JSON 或文章详情时,ETag 可以让浏览器先带 If-None-Match 询问资源是否变化,未变化就返回 304,减少响应体传输。本文用 net/http 写一个可运行的缓存协商示例,说明哈希生成、条件判断、响应头顺序和测试边界。395 收藏 -
用一个配置快照场景说明 Go slices.Clone 如何切断切片与底层数组的共享关系,比较直接赋值、append 和 Clone 的边界,并用竞态检测验证并发读取写入的安全做法。395 收藏 -
Go 1.25 新增的 http.CrossOriginProtection 可以在 net/http 层拒绝非安全跨源浏览器请求。本文用 Handler 接入、请求头判断和放行边界说明如何落地。395 收藏 -
Go 1.27 为小对象引入 size-specialized memory allocation。文章解释小于 80 字节的分配为何可能受益、整体收益为何不能照搬,以及如何用基准、二进制体积和 GOEXPERIMENT 做上线判断。395 收藏 -
Go 中 rune 是 Unicode 码点数值。想得到字符应使用 string(r),想得到十进制数字文本则使用 strconv.Itoa 或明确的格式化动词。395 收藏 -
讲清 Go os/exec 中 Cmd.Dir、cmd.Environ 和 Env 的配置顺序,并用独立缓冲区保存 stdout、stderr,区分启动失败与 ExitError。395 收藏