Go语言技术文章
-
用 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 debug/dwarf LineReader可在无行表时返回nil且无错误。本文说明编译单元输入要求、三种返回状态及Next的EOF处理,避免空指针和调试信息误判。376 收藏 -
Go 读取 ShiftJIS 日文 CSV,可先用 x/text 解码为 UTF-8,再交给 csv.Reader 逐条解析。本文给出文件导入函数,说明列数、替换字符和错误处理边界。401 收藏 -
区分 Go debug/dwarf 中两个 SeekPC 的查询对象,按地址空间、DWARF 范围和返回地址偏移排查 ErrUnknownPC,并给出重复查询的索引方案。471 收藏 -
Go RIFF 声明长度超过实际输入时应返回截断错误。本文说明头部解析成功的限制,并给出总长度比较、块数据计数和完整扫描的处理写法。209 收藏 -
说明 Go x/image/font/opentype 中 Font、Face 和字体源数据的生命周期区别,给出多个字号分别创建 Face、并发使用与逐个 Close 的资源管理写法。358 收藏 -
Go x/image/font/sfnt 的 Font 方法可以并发调用,但同一个 *sfnt.Buffer 不能被并发复用。本文结合 GlyphIndex、Metrics 和 LoadGlyph 说明独立 Buffer、nil Buffer、sync.Pool 借还边界,以及返回 Segments 前必须复制的原因。378 收藏 -
Go x/text/width 的 Widen 处理半角片假名时,半角浊音符号可能变成组合标记。本文说明宽度映射与 NFC 规范化的区别,并给出原文、展示值和比较键的分层写法。439 收藏 -
Go 分块 NFC 不能把任意片段独立正规化后拼接。本文比较整体、流式与追加接口,说明组合字符接缝、Writer 收尾及安全边界的选择方法。435 收藏 -
解释 Go x/text/unicode/bidi 中段落主方向、连续方向 run 和视觉顺序的区别,给出混合中文、拉丁字母、阿拉伯文字与数字时的处理写法。213 收藏 -
Go x/text/transform 的 Reset 是流状态重置,不是每个输入块的清理钩子。本文说明 pending state、ErrShortSrc、Writer.Close 与分块循环的关系,帮助你把 Reset 放到正确的逻辑流边界。348 收藏 -
解释 Go x/text/secure/precis 中昵称强制规范化、比较键和等价比较的区别,给出处理 Unicode 昵称冲突的实用写法。346 收藏 -
Go x/text/search 不是按字节或 rune 逐个比较文本,而是结合语言规则生成可比较的排序元素。因此带重音、大小写、宽度差异,甚至展开与合并关系的文本,可能在不同原始长度下匹配。本文说明 Matcher 选项、IndexString 返回区间和 Pattern 复用边界。410 收藏