Go教程技术文章
-
区分 Go 文件 Write、File.Sync 与 Close 的职责,掌握关键文件写入时的持久化和错误处理顺序。248 收藏 -
用 Go io.TeeReader 可以在读取文件、请求体或消息流时同步写入 hash.Hash,边读边计算 SHA-256 而不必先缓存完整输入。本文说明完整消费、摘要结果和写入错误之间的关系,并比较 TeeReader、MultiWriter 与 io.ReadAll 的适用场景。248 收藏 -
通过MultipartReader逐部件接收单文件,用实际读取限额、文件上限、固定复制缓冲及并发准入控制资源。原创示例说明私有暂存、失败清理与成功交付的责任边界,避免把复制缓冲大小误当成进程内存上限。248 收藏 -
Go testing.T.Output 返回一个适合多行诊断的 io.Writer,但不会自动补换行。本文说明并发写入如何按记录同步、行缓冲何时刷新,以及测试函数和父测试结束后为何不能继续 Write。248 收藏 -
Go Hamba Avro 的可空联合适合用 *T 表达 null 与具体类型二选一;当联合包含多个业务分支时,再用指针接收者实现 UnionConverter,显式控制 ToAny、FromAny 和错误处理。248 收藏 -
Go log/slog 可以用 Logger.With 复用批次字段,用 LogAttrs 传递单条记录属性;自定义 Handler 注入动态字段时,应先 Clone Record,再转发 Enabled、WithAttrs 和 WithGroup,避免破坏结构化输出和额外分配边界。248 收藏 -
Golang · Go教程 | 16小时前 | 网络编程 · 标准库 · 性能优化 · ip地址 · Go教程 · IPv6 批处理 Go ipv4 netip.Addr Prefix.Contains CIDR net/netip 减少分配 netip.Prefix
Go net/netip 判断地址是否属于指定网段,核心是预解析 netip.Prefix 与 netip.Addr,再调用 Prefix.Contains。本文说明 IPv4/IPv6 边界、解析错误和批处理复用值类型的写法,减少热点循环中的重复解析与额外转换。248 收藏 -
说明 Go TurkishCase 对 I、i、İ、ı 的映射关系,给出 rune 与 strings 的写法,并梳理从默认映射切换时的字节长度、存量键和回归样本。247 收藏 -
本文用 Go rtreego 实现二维矩形范围检索,说明 Spatial、Rect、SearchIntersect、LimitFilter 的用法,并整理空结果和对象更新时的排查清单。247 收藏 -
Go flag.BoolFunc 适合无显式值但需要每次触发动作的命令行开关。本文说明重复解析、显式值、错误处理,以及它和 Bool、Func、自定义 Value 的选择边界。246 收藏 -
围绕Go Goldmark自定义Badge节点说明Kind定义、HTML回调注册、进入与离开事件及文本转义,用固定v1接口示例区分节点构造和渲染职责。246 收藏 -
Excelize 的 NewStyle 返回当前工作簿内的样式 ID,SetCellStyle 再把它绑定到单元格或区域。本文用缓存和区域复用说明如何避免循环创建重复样式,并梳理工作簿边界与样式拆分规则。246 收藏 -
用 Go http.ResponseController 检测 Flush 能力,区分 http.ErrNotSupported、真实传输错误和代理缓冲边界,让包装后的 ResponseWriter 在不支持实时刷新时平滑降级。246 收藏 -
用一个消息分发小工具演示 Go RawMessage:先读 kind,再把 payload 解析成通知对象或标签数组,并处理缺失、null、未知类型和输入大小限制。246 收藏 -
Go debug/dwarf 的 LineReader 按编译单元读取 DWARF 源码行表。本文从 debug/elf 打开可执行文件开始,讲清 Data.LineReader、Next、LineEntry、EndSequence、SeekPC 和性能边界。246 收藏