Go教程技术文章
-
Go 的 multipart.Reader 需要保留 quoted-printable 部件时,应使用 NextRawPart。本文对比 NextPart 的透明解码行为,演示安全解析 boundary、保存原始 body,以及按需显式解码的实现边界。413 收藏 -
介绍 Go slog.Group 如何组织 request、order、payment 等嵌套业务字段,并比较 Logger.WithGroup、LogValuer、JSONHandler 与 TextHandler 的适用方式。447 收藏 -
Go 的 log/slog 可以把 HandlerOptions.Level 设置为 slog.LevelVar,在不重建 Logger 的情况下运行时切换最低日志级别。本文给出完整配置示例,说明 Set、Level、Enabled 的边界,以及多 Handler、并发更新和昂贵参数计算时的处理方式。340 收藏 -
用 Go slog.LogValuer 延迟展开业务对象:以轻量包装器配合 GroupValue 控制字段、脱敏和派生计算,并说明自定义 Handler、可变对象与 Resolve 的边界。443 收藏 -
讲清 Go slog.HandlerOptions ReplaceAttr 的统一字段清洗方案,覆盖敏感字段脱敏、内置键重命名、分组路径判断、删除字段与回归测试。128 收藏 -
用 fstest.MapFS 为依赖 fs.FS 的 Go 组件构造内存文件树,覆盖成功、文件缺失、坏数据、子目录和路径边界。370 收藏 -
解释 Go fs.Glob 在 ReadDir 回退和 GlobFS 委托路径中如何处理 I/O 错误,并给出使用 WalkDir 保留底层错误、避免把读取失败误判为无匹配的完整写法。212 收藏 -
用 Go 的 fs.Sub 把 embed.FS 中的 web 子目录变成独立根目录,示范模板和 HTTP 文件服务接入方式,并说明路径、错误处理、符号链接与测试边界。187 收藏 -
讲清 Go io/fs.WalkDir 命中目标后如何用 fs.SkipAll 正常结束全部遍历,并对比 fs.SkipDir、普通 error 与旧版本兼容写法。384 收藏 -
Go 的 io.TeeReader 能在下游读取数据时,把同一批字节同步写入另一个 Writer。本文用内存与文件示例说明其同步语义、错误传播、尾部未读和完整保存边界。429 收藏 -
讲清 Go io.PipeWriter.CloseWithError 如何把生产端错误传给读端,覆盖 Close、EOF、部分数据、Read 循环和关闭顺序等关键边界。478 收藏 -
Go flag.Visit 只遍历解析时被显式设置的参数,适合区分用户输入和默认值。本文说明 Visit 与 VisitAll 的差异、零值和布尔值边界、重复设置处理,以及子命令 FlagSet 的正确用法。168 收藏 -
Go 的 FlagSet 能为每个子命令建立独立参数空间。本文通过 ContinueOnError、纯解析函数和表驱动测试,讲清命令分派、错误输出与业务执行如何解耦。345 收藏 -
Go flag.Func 可以把字符串解析、业务校验和错误返回集中在回调中。本文用环境参数示例说明先校验后赋值、FlagSet 错误策略、重复参数行为和表驱动测试。214 收藏 -
flag.TextVar 可以把命令行文本直接交给自定义类型的 UnmarshalText。本文以 LogLevel 为例,说明接口分工、默认值写法、错误处理,以及如何把同一解析规则复用于 JSON 配置。394 收藏