Go教程技术文章
-
围绕 Go io/fs 讲清文件不存在、权限错误、非法路径和目录遍历失败的判断顺序,给出 errors.Is、errors.As、ReadFile 与 WalkDir 的可复用处理方式。358 收藏 -
用 Go io/fs 的 fs.Sub 把目录映射成独立的 FS 视图,配合 WalkDir 和 ReadFile 处理相对路径,并厘清非法路径、缺失目录与符号链接安全边界。139 收藏 -
用 Go io/fs 的 fs.FS 与 fs.WalkDir 统一遍历磁盘目录、嵌入资源和测试文件系统,掌握 slash 路径、DirEntry、错误处理、符号链接与 fs.Sub 的边界。247 收藏 -
用 Go io.MultiReader 按顺序合并多个输入流,再交给 io.Copy 统一消费;文章同时说明部分读取、非 EOF 错误、文件关闭和 MultiWriter、LimitReader 的选型边界。421 收藏 -
Go io.NewSectionReader 可以把 ReaderAt 限定在指定偏移和长度内读取。本文说明 off 与 n 的范围表达、ReadAt 的相对偏移、EOF 判断以及并发和资源生命周期边界。148 收藏 -
Go 限制上传读取长度时,不要只相信 Content-Length,也不要直接 io.ReadAll。本文用 io.LimitReader 暴露 maxBytes+1 字节,再配合 io.Copy 流式写入临时目标,区分正常文件、超限文件和读取失败。123 收藏 -
Golang · Go教程 | 1星期前 | Go教程 · encoding/json · Go encoding/json json.RawMessage json.Decoder 未知字段 兼容升级
围绕 Go json.Decoder 的结构体解码边界,说明如何用默认宽松解码兼容新增字段,再用 json.RawMessage 保留未知字段,并按场景切换严格校验。468 收藏 -
Go json.Decoder 的 Token 会逐个返回 JSON token。本文用 json.Delim 和深度计数识别对象、数组的嵌套边界,并说明对象字段、数组元素、EOF 与畸形输入的处理节奏。198 收藏 -
用 Go json.Decoder 配合 Token、More 和 Decode 逐项处理大型 JSON 数组,说明不保存全量切片时的内存边界、数字精度和异常处理取舍。476 收藏 -
Golang · Go教程 | 1星期前 | 文件处理 · 错误处理 · Go教程 · FieldsPerRecord ParseError Go encoding/csv CSV注释行 csv.Reader.Comment
Go encoding/csv 的 Reader.Comment 可以忽略行首直接出现注释字符的整行内容,再配合逐条 Read、FieldsPerRecord 和 ParseError 处理,把注释行、空行、有效记录与格式异常分开。107 收藏 -
通过 encoding/csv.Reader 的 ReuseRecord 复用字段切片,介绍流式 CSV 读取中的即时处理、表头跳过、记录复制和分配基准边界,避免把可复用切片错误地交给异步任务或长期缓存。346 收藏 -
Go encoding/csv 读取 CSV 时,应先消费并验证表头,再用 FieldsPerRecord 固定数据行列数。本文给出跳过表头、识别 ErrFieldCount 与 ParseError、在入库前完成结构校验的实现方法。259 收藏 -
围绕 Go time.Date 处理夏令时日期的真实边界,讲清本地时间往返校验、跳时缺口、重复小时、offset 记录和 UTC 存储策略。162 收藏 -
Go regexp.Expand 依赖 FindSubmatchIndex 返回的字节偏移,把命名组或数字组展开到可复用的 []byte 缓冲区。本文用完整示例说明四个输入、模板边界、未匹配组和循环拼接方式。468 收藏 -
Go 的 regexp.Compile 使用 leftmost-first 规则,CompilePOSIX 使用 POSIX ERE 语法和 leftmost-longest 规则。本文用同一模式对比返回结果,并说明语法、子匹配和选型边界。376 收藏