Go教程技术文章
-
Go bytes.Clone 适合在多个处理阶段需要独立修改 []byte 时隔离底层数组别名。本文从切片共享、nil 与空切片、长度容量以及浅层复制边界出发,给出可直接复用的工程写法。104 收藏 -
通过FileInfoHeader与SetMode保存Go ZIP文件头的权限信息,说明CreateHeader写入、归档关闭、目录模式和跨平台恢复的区别,并给出普通文件打包示例。315 收藏 -
Go compress/gzip 的 Name 与 Comment 属于 gzip 文件头元数据,需要在首次 Write、Flush 或 Close 之前设置。本文说明字段职责、编码限制、读取方式以及复用 Writer 时的重置顺序。144 收藏 -
Go compress/flate 的 Writer.Reset 可以在保留压缩级别和字典配置的前提下切换新的输出目标,适合批量处理多个独立数据块。本文说明 Close、Reset、错误处理和并发所有权的正确顺序。279 收藏 -
Go hash/crc32 的 IEEE 与 Castagnoli 不是可以随意互换的参数。本文用 MakeTable、Checksum、New 和 Update 说明如何按协议兼容性选择多项式,并划清 CRC32 与加密摘要的边界。380 收藏 -
Go log/slog 的 GroupValue 可以把多个 Attr 组成一个 Group,再配合 slog.Group 形成 request、user、deployment 等嵌套字段。本文说明空组消除、切片不可变和不同 Handler 输出时的组织方式。396 收藏 -
Go CSV读取启用ReuseRecord时,返回切片可能共享底层数组。结合同步消费、缓存快照和异步交接,说明低分配读取的适用方式、错误处理与内存保留取舍。349 收藏 -
Go 的 net/url.JoinPath 适合把基础 URL 与多个路径片段组合起来,并清理重复斜杠和相对片段。本文说明包级函数、URL.JoinPath、PathEscape、查询参数保留以及与 ResolveReference 的边界。481 收藏 -
用 Go 1.25 的 os.Root.RemoveAll 在固定根目录内递归清理子目录,掌握路径校验、错误分层、Root 关闭和版本平台边界。449 收藏 -
Go 解析 Set-Cookie 后,完整输入行会保存在 http.Cookie.Raw;本文说明怎样从 Response.Cookies 或响应头逐条读取它,并区分 Raw、Unparsed、RawExpires 与 String() 的重建结果。381 收藏 -
Go net/http Request.Clone 会复制 URL、Header、Trailer、表单等请求字段并替换 context,但 Request.Body 仍是浅复制。本文用客户端请求示例说明 Clone、WithContext、Body 和 GetBody 的边界,避免复制请求时误读或重复消费请求体。105 收藏 -
Go 读取 ShiftJIS 日文 CSV,可先用 x/text 解码为 UTF-8,再交给 csv.Reader 逐条解析。本文给出文件导入函数,说明列数、替换字符和错误处理边界。401 收藏 -
从 DWARF 条目的 AttrType 偏移调用 Go debug/dwarf Data.Type,读取 dwarf.Type 的通用描述,并按结构体、指针和类型别名读取具体字段。181 收藏 -
用 golang.org/x/image/riff 解析 WAVE 时,先判断 formType,再按 ChunkID/FourCC 筛选 fmt 和 data 块,并正确处理 chunkLen、chunkData 生命周期与未知块。306 收藏 -
Go inspector.WithStack 会把当前 AST 遍历路径以 []ast.Node 传入回调,本文用一个完整示例说明 stack 的顺序、push/pop 语义、剪枝方式,以及为什么保存祖先链时要复制切片。102 收藏