Go语言技术文章
-
用atomic.Pointer构建可复用的只读配置容器,演示完整构造、原子替换和一次Load读取,并说明map拷贝、多写者及旧快照生命周期。351 收藏 -
sql.Named 不会替你改写 SQL,占位符是否生效取决于驱动对命名参数的支持。本文从 database/sql 的参数传递过程出发,说明如何用 ns/op、B/op 和 allocs/op 记录批处理基线,并用预编译语句与可复用参数容器减少业务层额外分配。351 收藏 -
Go并行子测试共用临时目录时,怎样隔离同名输出文件、安排父子测试清理责任,以及为什么race检测不能代替文件归属分析。351 收藏 -
Go regexp 使用 RE2 语法并保证匹配时间随输入规模线性增长,因此不需要给传统回溯引擎配置超时。本文用输入字节预算、模式编译边界和 FindAll 结果上限控制正则相关资源消耗。350 收藏 -
Go 里 os.Open 返回成功并不代表后续 File.Read 一定成功。本文按 Open、Read、Close 三个阶段拆开权限错误,使用 PathError、errors.Is 和 os.IsPermission 定位真正失败的操作,并给出不会覆盖主错误的写法。350 收藏 -
Go flag 的多子命令程序可以为每个子命令创建独立 FlagSet,并分别设置 Usage 与输出流。本文用 serve、config 示例说明帮助文本隔离、解析错误处理和验证方法。350 收藏 -
用 Go unsafe.StringData 读取字符串底层字节时,关键不是把 string 强行变成可写切片,而是保留原字符串所有者并封装只读访问。本文说明零拷贝视图的生命周期、空值和越界边界,以及哪些场景应该继续使用普通转换。350 收藏 -
Go bytes.FieldsFuncSeq 接收自定义 rune 判断函数,返回按规则切出的非空字节子切片迭代器。本文说明自定义分隔规则、与 FieldsFunc 的关系、提前停止消费以及输入切片别名边界。350 收藏 -
Go 1.27 的 response file 解析属于 compile、link、asm、cgo、cover、pack 等底层工具,不是 go build 外层任意参数的通用语法。带空格的参数必须按 GCC-compatible 规则用单双引号包住,并先确认到底是哪一层在解析。350 收藏 -
Go filepath.FromSlash 适合把配置、归档或协议中的斜杠路径转换为目标操作系统的文件路径。本文说明输入边界、与 ToSlash 和 io/fs 的分工,以及不能替代的清理和安全检查。350 收藏 -
介绍 Gonum quad.Hermite 的积分节点与权重用法,说明全实数边界、平方指数权重、quad.Fixed 参数、节点切片配对和并发回调边界。350 收藏 -
Go weak.Pointer 不会阻止对象被垃圾回收,适合做可丢失的二级缓存索引。本文用 weak.Make、Value、runtime.KeepAlive 和回源逻辑说明如何实现可失效引用,以及它不能替代业务主存储的边界。350 收藏 -
Go encoding/csv.Writer 写入 CSV 时,Write 成功不代表底层输出已经完成。本文说明 Write、Flush、Writer.Error 的正确检查顺序,并解释 WriteAll 的错误传播方式。350 收藏 -
Go 服务健康检查失败而业务接口仍能访问,通常不是业务处理器坏了,而是探针路径、监听地址、状态码或依赖检查边界没有分开。本文用一个最小 net/http 服务拆开存活、就绪和业务依赖检查,并给出按现象定位与部署验收的方法。349 收藏 -
Go 的 math/big.Rat.SetString 支持十进制小数、指数和分数格式。本文排查逗号、单位、空白和返回值误用等失败原因,并说明 RatString 与 FloatString 的区别。349 收藏