Go教程技术文章
-
Go regexp.Longest 适合放在 token 候选识别层:它改变同一个正则的左侧最长匹配偏好,但不负责多条词法规则的全局仲裁、优先级或 Parser 语法组合。292 收藏 -
Go regexp 默认采用左侧优先匹配,调用 Longest 后会改为同一起点取更长结果。本文用最小示例比较两种策略,并说明 CompilePOSIX、子匹配和并发配置的边界。432 收藏 -
用户输入的正则模式不能交给 MustCompile。本文用 regexp.Compile、errors.As 和 syntax.Error 做输入边界、内部诊断与对外提示的分层处理。148 收藏 -
FindAllStringSubmatchIndex 返回 UTF-8 字节下标。本文用 Go 将完整匹配和子表达式转换为 rune 区间,并处理可选分组的 -1 与字素簇边界。284 收藏 -
Go 动态拼接正则表达式时,先用 regexp.QuoteMeta 转义用户输入,才能让点号、括号、加号等字符按字面匹配;本文同时说明模式结构、Compile 错误和替换模板的边界。484 收藏 -
Go encoding/json 默认会忽略未知字段。本文用嵌套类型的 UnmarshalJSON 和独立 Decoder,只对指定对象开启 DisallowUnknownFields,兼顾接口兼容与请求校验。110 收藏 -
Golang · Go教程 | 1天前 | 类型断言 · Go教程 · encoding/json · JSON解析 · Go JSON解析 json.Decoder UseNumber json.Number
Go 的 json.Decoder 调用 UseNumber 后,动态 JSON 数字不再是默认的 float64,而是 json.Number。本文解释类型断言失败的原因,并给出大整数、整数和浮点数的迁移写法。263 收藏 -
Golang · Go教程 | 1天前 | 数据类型 · Go教程 · JSON解析 · 精度处理 · Go JSON解析 float64 json.Decoder UseNumber json.Number
Go 用 json.Decoder 解码到 interface{} 时,JSON 数字默认会变成 float64。本文演示 UseNumber 如何保留数字字面量,再按需调用 Int64 或 String,避免大整数被浮点转换。427 收藏 -
Go encoding/csv 中把 Reader.Comment 设为 0 就能关闭注释行过滤,让井号开头的文本回到普通 CSV 记录;文章同时说明首次读取前的配置时机、前导空白、Comma 冲突和格式错误边界。499 收藏 -
Go encoding/csv 的 Comment 只识别没有前导空白的物理行首。引号字段中的 # 属于字段值,不会被当成注释;本文用代码和边界表说明三种情况的区别。105 收藏 -
Go encoding/csv 读取带注释行的 CSV 时,设置 Reader.Comment 即可跳过行首注释;本文同时说明前导空白、TrimLeadingSpace、FieldsPerRecord 和解析错误的处理边界。331 收藏 -
ReuseRecord 只影响 Reader.Read 返回的记录切片是否可复用,对 ReadAll 没有把全部记录变成单行复用的效果。本文比较两种读取方式的内存边界,并给出流式处理、保留记录和错误检查的选择方法。326 收藏 -
Golang · Go教程 | 1天前 | 切片 · csv · Go教程 · encoding/csv · 异步处理 · Go encoding/csv 切片复制 CSV读取 ReuseRecord
Go 的 encoding/csv 开启 ReuseRecord 后,保存记录应复制返回的 []string 外层切片,而不是逐个重建字符串。本文说明复用边界、异步投递时机、ReadAll 差异和可直接采用的代码写法。394 收藏 -
Go encoding/csv 开启 ReuseRecord 后,Read 返回的记录切片可能与下一次读取共享底层数组。本文用 goroutine 场景说明何时复制 []string,以及如何避免异步任务读到被覆盖的数据。155 收藏 -
Golang · Go教程 | 1天前 | 标准库 · 文件读取 · Go教程 · 错误排查 · CSV解析 · Go ReadAll read encoding/csv FieldsPerRecord ErrFieldCount
Go encoding/csv 的列数错误不是等到 ReadAll 结束才检查,而是在读取具体记录时由 Read 逻辑发现。本文对比 Read 与 ReadAll 的返回值、FieldsPerRecord 三种语义,并给出定位故障行的处理方式。315 收藏