Go教程技术文章
-
以旧式回调遍历迁移为场景,使用 Go 1.23 的 range over func 和 iter.Seq 实现可提前停止的函数迭代器,并说明 yield=false、版本和资源边界。311 收藏 -
用独立HTTP入口暴露Go批处理指标,启动时注册固定计数器并批末合并,说明权限、采集口径、分配开销与失败处理边界。311 收藏 -
通过 go.work 明确多模块联调范围,使用 go work sync 按 MVS 回写工作区依赖版本,并用 GOWORK=off 划清 CI 与发布验证边界。311 收藏 -
通过带业务字段的 QuotaError 示例,说明 Go errors.Is 自定义 Is 方法的浅比较规则、%w 包装、目标方向与 typed nil 的处理。310 收藏 -
用 go-chart/v2 的 TimeSeries 传入时间点和数值,再配置 XAxis 的时间格式化器;同时说明排序、时区、刻度格式和数据长度不一致时怎样排查。310 收藏 -
Go go-mp3 的 Seek 面向解码后的 PCM 字节流,不是 MP3 压缩文件偏移。本文说明如何使用可定位输入、按4字节 sample 边界换算偏移,并处理 Length=-1 与跳转后的 Read。310 收藏 -
Go的字符串可包含任意字节,UTF-8入口应先限制大小并取得完整文本,再用unicode/utf8.Valid拒绝无效输入。本文给出纯文本Handler与字节偏移诊断示例,说明分块读取、合法替代字符及有损修复的边界。310 收藏 -
Golang · Go教程 | 1星期前 | 标准库 · 错误处理 · go · 时间处理 · Go 时区 日期解析 time.LoadLocation time.ParseInLocation time.Location
Go 解析不带时区的本地日期时,应先加载指定的 time.Location,再调用 ParseInLocation。本文区分空输入、未知时区和日期格式错误,并用 errors.Is 与 %w 保留调用方可判断的错误语义。310 收藏 -
用 Go atomic.Bool 管理进程运行状态,展示并发读取、幂等启动、一次停止和适用边界,给出可复用的最小状态封装示例。310 收藏 -
用 Go 的 os.ReadFile 读取配置文件时,不要比较错误字符串。本文用 errors.Is 和 errors.As 区分权限不足、路径不存在与其他失败,并通过 %w 保留可追踪的错误链。309 收藏 -
Go modules 的 vendor 模式能把构建所需依赖放进项目目录,但可复现的关键不是简单提交 vendor,而是让 go.mod、vendor/modules.txt 与构建模式保持一致。本文梳理 go mod vendor、-mod=vendor 和团队协作中的固定检查点。309 收藏 -
Go 使用 slices.SortStableFunc 并让相同排序键返回 0,可以保留本次输入中等价记录的相对次序。本文区分批内稳定性与跨请求确定性,说明切片复制、分片收集和次级键的取舍。309 收藏 -
Go 的 build.Context.MatchFile 会结合文件名和文件内容中的构建约束,判断源文件是否属于目标构建上下文。本文用 GOOS、GOARCH、CgoEnabled 和 BuildTags 说明筛选逻辑、错误处理与源码扫描写法。309 收藏 -
Go JMESPath 查询在请求路径中反复解析时,容易把表达式编译和数据搜索混在一起。本文从一次重复解析的故障症状出发,说明如何用 Compile 提前编译稳定查询,在多个 JSON 文档上复用,并处理并发安全、错误传播和动态表达式边界。309 收藏 -
go-message 的 mail.Header.Subject 会按邮件头的 MIME 编码规则解码主题。本文用一个可复用的读取骨架说明如何处理字符集注册、未知字符集错误、原始头保留和多段主题边界。309 收藏