Go语言技术文章
-
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 收藏 -
Go bidirule 的流式检查必须在标签结束后确认结尾约束。文章说明 atEOF、Close 错误及跨块状态,并给出暂存输出后再交付的完整写法。366 收藏 -
transform.Chain 只负责按顺序组合转换器,不会自动扩展调用方提供的 dst。本文用 x/text/runes 和 transform 的例子说明 ErrShortDst、nDst、nSrc 的正确处理,以及 transform.Writer 在 Close 时刷新尾部数据的原因。404 收藏 -
Go x/text/number 中 MinFractionDigits 控制小数位下限,MaxFractionDigits 控制上限。本文按排障手册说明两者何时配套、何时只设一侧,以及 Scale 固定精度的选择。407 收藏 -
Go x/text/message 占位参数类型不匹配时,应检查实际翻译模板、参数索引和类型;通过类型封装与输入解析保持各语言模板约定一致。353 收藏