Go语言技术文章
-
Go time.Time 取整时,Truncate 向下归入已开始的时间窗口,Round 选择最近的时间刻度。本文用代码和边界表对比两者结果,并说明 Location、负时间和非正 Duration 的处理方式。119 收藏 -
围绕 Go encoding/gob 长连接复用场景,说明连接级 Encoder 与 Decoder 的正确用法、并发写入限制、错误恢复和必须重新创建编解码器的边界。371 收藏 -
用 Go time.LoadLocation 集中管理 IANA 时区,区分 Parse 与 ParseInLocation,统一 UTC 存储和 Time.In 展示,并说明夏令时与 tzdata 缺失时的处理边界。296 收藏 -
讲清 Go encoding/gob 接口字段为什么要注册具体实现类型,并用收发示例说明值、指针、注册名和解码边界。181 收藏 -
围绕 Go time.Parse 与 time.ParseInLocation,说明带 Z、数值偏移和时区缩写的字符串如何选择布局,给出可复用的解析代码与排错清单。275 收藏 -
用一个小型 CSV 检查工具,把 Go encoding/csv 的 ParseError 行列、InputOffset 字节边界和原始行片段组合起来,快速定位坏记录。398 收藏 -
Golang · Go教程 | 3星期前 | channel · 定时任务 · Go教程 · Go time.Ticker动态调整周期 Go Ticker Reset使用方法 Go定时任务保留状态 Go周期任务动态配置 Go ticker慢任务处理
Go time.Ticker可以通过Reset切换周期,但它只负责发送tick,不负责保存业务游标。本文用单goroutine事件循环拆开周期更新、状态保存、慢任务与退出清理,给出动态调度的可复用实现方式。406 收藏 -
Golang · Go问答 | 3星期前 | csv · Go问答 · 错误排查 · 数据导入 · FieldsPerRecord LazyQuotes ParseError Go encoding/csv CSV引号错误
围绕 Go encoding/csv.Reader 的 LazyQuotes 参数,对比严格解析和引号容错的边界,说明 ParseError、FieldsPerRecord、部分记录与行列坐标如何组成可追踪的 CSV 导入策略。146 收藏 -
围绕 Go time.Ticker 的 Stop、ticker.C 和停止瞬间的残留 tick,说明如何结束消费循环、避免错误 drain,并给出关闭检查清单。128 收藏 -
讲清 Go encoding/csv 的 FieldsPerRecord 三种模式,说明 ErrFieldCount 返回 record 的处理方式,并给出固定模板、首行推断和变宽 CSV 的错误分流方案。291 收藏 -
围绕 Go time.Ticker 的停止语义,演示如何用 context 退出周期循环、等待工作协程,并按所有权释放外部资源,同时说明 Go 1.23 垃圾回收变化的边界。436 收藏 -
Go 使用 archive/tar 解包时,先把 Header.Name 归一化为目标目录内的相对路径,再用 filepath.Rel 判断边界,并分别处理目录、普通文件和符号链接。115 收藏 -
Golang · Go教程 | 4星期前 | 标准库 · regexp · 字符串处理 · Go教程 · 命名捕获组 正则替换 Go regexp ExpandString regexp.Expand FindSubmatchIndex
用 Go regexp 的 Expand 和 FindSubmatchIndex 把匹配文本转换成结构化输出,覆盖命名与数字引用、字面美元符号、批量追加和未匹配分组边界。419 收藏 -
Go archive/tar 不应通过文件名后缀判断 Tar 链接。读取 Header.Typeflag 区分 TypeLink 与 TypeSymlink,再从 Header.Linkname 记录目标;链接条目没有可供 Reader.Read 消费的正文。459 收藏 -
Go regexp 的 Index 系列方法返回的是原字符串字节区间。本文用完整匹配和捕获组两个示例,说明如何安全切回原文、处理负数下标,并把中文文本的位置转换为字符序号。479 收藏