Go语言技术文章
-
Golang · Go教程 | 4星期前 | 标准库 · 错误处理 · 文件读取 · Go教程 · Go bufio bufio.Reader ErrBufferFull ReadSlice bytes.Join 文本扫描
bufio.Reader.ReadSlice 遇到没有及时出现的换行符时会返回 ErrBufferFull 和一段暂存切片。本文说明怎样先复制片段、继续读取,再用 bytes.Join 拼回完整一行,并区分 EOF 与真实错误。472 收藏 -
Go HTTP Server 用 ConnContext 保存连接编号与地址快照,handler 从请求上下文读取;结合完整示例说明私有键、连接复用与请求身份的边界。472 收藏 -
Go 的 os.Rename 在 Windows 上失败,常见原因是文件句柄未关闭、目标路径是目录或跨目录限制。本文用 LinkError 保留上下文,并给出同目录临时文件发布方式。472 收藏 -
用 io.NopCloser 把 Reader 适配为 ReadCloser,解释空 Close 与真实资源清理的边界,并给出请求体和资源所有权示例。472 收藏 -
Zerolog 的 diode.Writer 为了让日志生产者不被慢速输出端阻塞,会把事件放入有容量的非阻塞队列;消费跟不上时,队列满的部分会被丢弃。本文解释丢失原因、missed 告警和关闭策略。472 收藏 -
bytes.NewBuffer 会把传入的 []byte 作为初始缓冲区内容使用,不会替调用方自动复制。本文说明原切片修改为何会影响后续读取,以及如何用 bytes.Clone 或显式复制隔离数据。472 收藏 -
Go runtime/metrics.Read 可以复用同一个 []metrics.Sample,但要区分串行采样、并发底层内存和直方图深拷贝边界。本文给出可落地的定时采样写法。472 收藏 -
Go os.Lstat 的结果通常并不是随机变化,而是读取对象、错误分支或并发替换窗口没有分清。本文用快照、ModeSymlink 和 PathError 说明排查顺序,并给出稳定观察文件状态的写法。472 收藏 -
os.MkdirTemp 不接受 perm 参数,而是按 0700 创建临时目录。本文解释这一安全边界、umask 影响、清理责任,以及多进程确需共享时的处理方式。472 收藏 -
Go flag.FlagSet.VisitAll 会按参数名的字典序遍历所有已注册标志。本文用标准库示例生成稳定帮助清单,解释 VisitAll 与 Visit 的区别、默认值展示、宽度排版和自定义 Usage 的错误处理。472 收藏 -
Go path.Match 返回 false 时,先检查它是否要求整串匹配、通配符是否跨过斜杠、模式是否有语法错误,以及当前数据究竟是 URL 路径还是本地文件路径。472 收藏 -
用只读配置快照配合 atomic.Pointer,可以在热更新时原子替换整份配置,让批处理读取方复用同一个快照引用,减少锁竞争、重复解析和临时分配。本文说明构造、发布、读取与回滚边界。472 收藏 -
用一轮 Tuple 遍历同时收集返回位置、名称和类型文本,生成有序文档记录。提供从包作用域读取函数签名的完整例子,并处理空返回、未命名项和失败情况。472 收藏 -
讲清 Go image.Image.Bounds 返回的坐标域、非零原点、Dx/Dy 尺寸计算,以及 At 和裁剪逻辑中的边界处理。472 收藏 -
Golang · Go教程 | 4星期前 | 性能优化 · 并发编程 · 同步 · Go教程 · Go add sync/atomic CompareAndSwap 并发计数器 atomic.Int64 Load
Go atomic.Int64 适合维护并发请求数、在途任务数等单值状态。本文从普通自增的竞态出发,说明 Add、Load、Store 和 CompareAndSwap 的使用边界,以及零值、复制和复合条件判断的注意事项。471 收藏