Go教程技术文章
-
Go filepath.Rel 在 Windows 上已支持盘符与 UNC 共享卷名。本文用完整绝对路径封装说明同卷计算、跨卷错误、盘符相对路径与 Linux 处理 Windows 路径文本的区别。319 收藏 -
Go filepath.Clean 负责词法归一化,filepath.Rel 负责计算相对路径。本文把两者组合成根目录校验函数,处理 .. 越界、根目录本身、绝对路径和符号链接边界。172 收藏 -
Go filepath.Rel 只能在目标系统能够相对化的路径之间计算结果。本文解释 Windows 盘符与 UNC 共享根不一致时为什么报错,给出卷名预判、跨平台测试和迁移方案选择。458 收藏 -
Go io.ReadFull 会尽力读满固定长度的缓冲区。本文区分完整读取、起始 EOF 和半帧 ErrUnexpectedEOF,并给出定长消息封装写法。387 收藏 -
Go filepath.Match 的反斜杠规则会随操作系统变化:Unix 类系统把 \c 当作对字符 c 的转义,Windows 则把反斜杠当作路径分隔符。本文用最小示例说明通配符、完整匹配、ErrBadPattern 和跨平台写法。156 收藏 -
Go net/url 用 url.Values 保存重复查询键的多个值。本文说明 ParseQuery、Get、Add、Set、Del 和 Encode 的差异,帮助你在多选参数与唯一参数之间做出正确选择。137 收藏 -
Go compress/gzip Writer 的 Write 可能把错误留在压缩过程或 Close 收口阶段。本文用错误分层、临时文件和原子提交说明如何丢弃半成品、保留根因并安全清理底层资源。468 收藏 -
Golang · Go教程 | 2天前 | 网络编程 · 标准库 · HTTP · Go教程 · Go 响应头 net/http http.Header Header.Get Header.Values
Go 的 http.Header 底层是 map[string][]string。需要读取同名响应头的全部值时使用 Header.Values,只关心首个值才使用 Header.Get,并注意缺失值、大小写与返回切片的边界。148 收藏 -
Go compress/gzip 的 Write 不代表压缩流已经完成,必须调用 Writer.Close 刷新未写数据并写入 GZIP 尾部。本文说明 gzip.Writer 与底层 io.Writer 的关闭责任、defer 顺序、Close 错误处理,以及 Flush 和 Reset 的适用边界。367 收藏 -
Go archive/tar 只负责读取 tar 条目,不会替应用限制解包路径和磁盘预算。本文用路径归一化、根目录边界检查、单文件上限与总量上限,搭出可迁移的安全解包骨架。277 收藏 -
Go archive/tar 的 Header.Format 是 Reader.Next 对归档格式的尽力判断,可能返回 USTAR、PAX、GNU 或 Unknown。本文说明如何读取格式、比较能力边界,并在重新写入时显式选择兼容格式。136 收藏 -
Go archive/tar 遇到长文件名时应选择 PAX 格式。本文用 Writer 与 Reader 说明 FormatPAX、Header.Name、Next 和 USTAR/GNU 的取舍。194 收藏 -
Go archive/zip 里 Writer.Close、OpenReader.Close 和条目 ReadCloser 不是同一个关闭边界。本文用写入与读取示例说明如何收口资源,并在完整读取条目后捕获 zip.ErrChecksum、io.ErrUnexpectedEOF 等错误。452 收藏 -
Go archive/zip 遍历 ZIP 时,文件名应读取 FileHeader.Name,目录条目通常以斜杠结尾。本文用 OpenReader 和 Reader.File 区分文件、目录与路径边界,并说明 Open、Close 和 ErrInsecurePath 的处理方式。120 收藏 -
使用 Go hash/crc32 在分块读取文件、上传内容或消息流时持续计算 CRC32,掌握 Sum32、Sum 和 Reset 的用法与边界。383 收藏