Go语言技术文章
-
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 收藏 -
Go 的 image/png 通过 CompressionLevel 提供默认、无压缩、最快和最佳压缩四种选择。本文用 Encoder 配置 PNG 编码级别,说明文件大小、编码开销和 BufferPool 之间的边界。257 收藏 -
Go archive/zip 的 FileHeader.CreatorVersion 不是单纯的版本号,其中包含 ZIP 条目创建平台和版本信息。本文给出拆解高低字节、读取常见平台标识以及结合 ExternalAttrs 判断权限的实用写法。481 收藏 -
Go archive/tar 的 Header.Xattrs 会被写成 PAX 的 SCHILY.xattr.* 记录。本文用一个紧凑示例说明怎样显式选择 PAX、怎样处理 PAXRecords 覆盖关系,以及键名和资源关闭的边界。264 收藏 -
io/fs 使用统一斜杠路径,而本地文件系统使用操作系统分隔符。本文用 filepath.Localize 完成转换,说明 ValidPath 前置条件、Windows 兼容错误与文件操作边界。405 收藏 -
围绕 Go io.WriterTo 与 io.Copy 的源端复制路径,说明如何实现 WriteTo、如何处理短写和错误,以及包装类型和 ReaderFrom 会怎样改变快路径选择。418 收藏 -
Go io.SectionReader 的 ReadAt 使用 section 内相对偏移,不会推进 Read 使用的当前读取位置。本文说明 base、当前偏移和 limit 的边界,给出定位读取、短读和 EOF 的处理方式。412 收藏