Go教程技术文章
-
Go encoding/csv Reader 的 FieldsPerRecord 设为 -1 后可以读取列数不同的合法 CSV,再由业务层校验必需字段、最大列数和异常记录。189 收藏 -
讲清 Go encoding/xml 对缺失元素、空元素和有值元素的映射差异,并用指针字段、TextUnmarshaler 与 UnmarshalXML 保留协议中的可选状态。142 收藏 -
通过 Go encoding/xml 的 UnmarshalXML 将旧字段名、属性和文本金额映射到领域结构,并用 DecodeElement 控制单元素消费与错误边界。189 收藏 -
讲解 Go encoding/xml.Decoder.Token 如何流式扫描大型 XML,结合 DecodeElement、Skip、InputPos 与命名空间处理逐条读取记录。424 收藏 -
Go encoding/json 的 omitempty 不是‘所有零值都隐藏’:本文按 bool、数字、字符串、切片、映射、数组、指针和结构体拆解省略边界,并给出可选 API 字段的建模与测试方法。192 收藏 -
使用 Go encoding/json 的 Decoder.Token、More 与 Decode 按层读取嵌套 JSON,逐条处理目标数组,并安全跳过未知结构。364 收藏 -
介绍 Go encoding/json 在动态解码时使用 Decoder.UseNumber 保留大整数文本,并安全转换为 int64、uint64 或 big.Int。328 收藏 -
介绍 Go strconv.AppendInt 拼接数字字段的实用写法,说明缓冲区容量、进制、类型转换、切片返回值和并发复用边界。430 收藏 -
通过 SemVer 示例讲清 Go fmt.Scanner 的触发方式、Token 读取、动词门禁、错误处理和安全赋值。182 收藏 -
讲清 Go fmt.Appendf 如何把格式化结果直接追加到字节切片,并用预分配、返回值接收和基准测试控制分配。478 收藏 -
用 Go strings.IndexByte 定位 ASCII 协议分隔符,结合字符串切片完成低分配字段解析,并说明 -1、UTF-8、空字段和大字符串保留的边界。413 收藏 -
strings.Builder 的 Reset 会把内部缓冲区置为 nil,不保留容量;已返回的字符串仍可能延长旧缓冲区生命周期。本文用最小示例梳理复用、清空、Grow 和对象池的边界。475 收藏 -
用 Go strings.CutPrefix 处理可选前缀,覆盖命中、未命中、空前缀和重复前缀边界,并给出旧写法迁移方案。165 收藏 -
通过批量行协议案例说明 bytes.Buffer.Grow 的容量估算:区分新增字节与目标容量,计算固定开销、字段长度和编码膨胀,并处理复用池与异常大输入。488 收藏 -
Go 1.20+ 的 bytes.CutPrefix 可以同时校验并移除二进制帧起始标记。本文给出版本、标志、长度和负载的完整解码写法,比较 HasPrefix、TrimPrefix,并说明多标记分派、空前缀与切片别名边界。433 收藏