Go教程技术文章
-
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 收藏 -
Golang · Go教程 | 2天前 | 标准库 · JSON · Go教程 · encoding/json · Go encoding/json bytes.Buffer json.Compact JSON压缩
Go json.Compact 用已有 JSON 字节和 bytes.Buffer 生成紧凑 JSON,只删除结构中的无意义空白,不改动字符串值。本文说明最小用法、错误处理、Buffer 复用,以及它和 json.Indent、Marshal、HTMLEscape 的边界。214 收藏 -
Go runtime/asan 实际对应 go build -asan 与 AddressSanitizer 的协作入口,适合排查 cgo 连接的 C/C++ 内存问题。本文说明构建方式、报告阅读、泄漏开关和平台限制。304 收藏 -
Go 的 json.Valid 接收 []byte 并返回 JSON 语法是否有效的布尔值,适合做输入预检,但不负责把字段映射到结构体。本文用一个边界排查场景说明 Valid 与 Unmarshal 的分工。203 收藏 -
Golang · Go教程 | 2天前 | 标准库 · JSON · Go教程 · encoding/json · Go encoding/json Prefix JSON格式化 indent json.MarshalIndent
Go json.MarshalIndent 会先把 Go 值编码为 JSON,再用 prefix 和 indent 排版嵌套结构。本文区分两个参数的职责,说明接口、配置和日志场景的选型,并补充错误处理、json.Indent 与 HTML 转义的边界。204 收藏 -
Golang · Go教程 | 2天前 | 标准库 · JSON · go · encoding/json · Go bytes.Buffer Prefix json.Indent JSON格式化 indent
Go json.Indent 会把已有 JSON 字节按对象和数组层级排版到 bytes.Buffer。本文区分 prefix、indent、字符串内容与输入空白边界,并说明何时应改用 json.MarshalIndent。487 收藏