Go语言技术文章
-
Go encoding/hex NewEncoder 返回一个 io.Writer,适合把网络、文件或协议分片连续编码成小写十六进制文本。本文说明 Writer 链、Write 返回值、下游错误和一次性编码 API 的选择边界。217 收藏 -
Go bytes.FieldsFuncSeq 接收自定义 rune 判断函数,返回按规则切出的非空字节子切片迭代器。本文说明自定义分隔规则、与 FieldsFunc 的关系、提前停止消费以及输入切片别名边界。350 收藏 -
Go strconv.AppendQuoteToASCII 会把字符串追加成带双引号的 Go 字符串字面量,并把非 ASCII 字符转成 ASCII 转义。本文用最小示例说明已有 []byte 的追加方式、控制字符处理、返回切片边界,以及它与 Quote、AppendQuote 的取舍。360 收藏 -
Go archive/tar.Writer.Flush 不是刷新任意缓冲,而是为已经完整写入的当前文件条目补齐 tar 块填充。本文用两个条目的示例说明 Header.Size、Write、Flush、WriteHeader 与 Close 的关系,以及遗漏字节和底层写入错误的处理边界。146 收藏 -
Go unique.Handle[T].Value() 会返回创建句柄的 T 值浅拷贝。本文从 Go 1.23 引入的 unique 包出发,说明如何取回已驻留值、比较等值句柄,以及迁移时需要注意的可比较约束和生命周期边界。176 收藏 -
Go sync.Pool 适合缓存短生命周期、可安全丢弃的临时对象。本文用 bytes.Buffer 示例说明 Get 后覆盖、使用中独占、Put 前 Reset,以及切片引用和异步访问的生命周期边界。268 收藏 -
Go math/big 的 big.Int.SetString 能按 base=0 自动识别常见前缀,也能按 2 到 62 的显式进制解析大整数文本。本文说明前缀、下划线、大小写和失败返回值的边界,并给出可复用的选择流程。437 收藏 -
Go math/rand/v2 ChaCha8 同时提供 Read 和 Uint64,但两者交错调用时返回位顺序未定义。本文说明可复现测试、拆分随机源和状态快照的稳定写法。111 收藏 -
Go 中按指定时区生成日期边界时,应让 time.Date 和 AddDate 共享同一个 time.Location,并用当天零点到下一天零点的半开区间做查询。本文说明时区加载、夏令时边界和固定 24 小时截断的区别。482 收藏 -
Go 的 time.Timer.Stop 返回值表示定时器是否被成功停止,不等于 t.C 是否发生过接收。本文用取消、超时和并发收尾示例区分这两个事实,并说明 Go 1.23 之后的通道语义。290 收藏 -
通过 Go net.Resolver 隔离 DNS 策略,区分 PreferGo、Dial 与 StrictErrors,并将解析器绑定到 HTTP 客户端。结合代码解释超时、代理、连接复用及配置切换的适用边界。222 收藏 -
Go strings.CutSuffix 适合处理明确位于字符串末尾的后缀。本文用文件名清理场景说明 before 与 found 的含义,并区分未匹配、空后缀、大小写和路径解析边界。192 收藏 -
Golang · Go教程 | 1星期前 | 标准库 · 错误处理 · go · 数据导入 · csv Go Reader encoding/csv FieldsPerRecord ErrFieldCount
Go encoding/csv 默认会按首条记录推断字段数,字段数量变化时返回 ErrFieldCount。本文说明 FieldsPerRecord 的三种语义、可变字段 CSV 的正确配置,以及如何保留单条读取中的记录和错误。136 收藏 -
Go Base64 标准编码与 URL 编码的区别在字符表,Raw 决定是否省略填充。本文对照四个编码对象,说明 URL 参数转义、存储约定、解码错误及规范文本处理边界。138 收藏 -
Go encoding/xml 默认会丢弃无法映射到结构体的 XML 元素。本文用自定义 UnmarshalXML、Token 和 CopyToken 保存未知节点,并补上 MarshalXML 重新输出的完整做法与边界。473 收藏