Go教程技术文章
-
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教程 | 5天前 | 标准库 · 错误处理 · 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 收藏 -
用一次 os.OpenRoot 复用目录根对象,逐个读取直接子文件并及时关闭,结合有界读取、逐项错误与根关闭错误,说明多文件批处理的资源归属和恢复边界。164 收藏 -
Go 1.23 起可以直接用 os.CopyFS 把 fs.FS 的目录树复制到磁盘。本文从 os.DirFS 和 fs.Sub 的根路径开始,给出嵌入文件与本地目录示例,并排查已存在文件、路径和权限错误。444 收藏 -
Go 1.24 起可以用 os.Root 把文件操作约束在指定目录树内。本文用一个上传目录示例说明 OpenRoot、Root.Open、Root.OpenFile 的相对路径用法,以及软链接、关闭和平台边界。264 收藏