-
Go x/text/language 的 Compose 适合把 Base、Region 和已有 Tag 组合成语言标签。本文用实际代码说明参数类型、重复部件覆盖、Variant 与 Extension 累积、错误处理和规范化选择。
-
ssa.NewProgram 用 FileSet 和 BuilderMode 创建空的 SSA 程序容器。本文说明初始化写法、包注册与函数体构建的区别,并比较手动入口和 ssautil 辅助函数的适用条件。
-
Go callgraph.DeleteSyntheticNodes 可以从调用图中移除不对应源语法的合成函数节点,并重建剩余节点之间的可达关系。本文说明它的调用时机、root 与包初始化函数的保留边界,以及不可达节点为何需要另行处理。
-
Go cfg.New 可以把一个函数体转换成简单控制流图。本文从 AST 函数体出发,说明 mayReturn 回调、CFG.Blocks、Block.Nodes、Succs 与 Kind 的关系,并给出分支、返回和不返回调用的处理方式。
-
Go typeutil.Map 适合把 go/types 产出的 types.Type 作为键,并按类型等价关系保存任意值。本文从类型检查结果取出类型对象,演示 Set、At、Iterate 的用法,说明普通 map、字符串键、并发读写和 Hasher 的边界。
-
Go x/image/font/sfnt 的 GlyphIndex 用于把 rune 映射到字体中的字形索引。本文从缺字症状出发,说明字体解析、Buffer 复用、返回 0 的含义,以及如何继续读取字形名称、边界和轮廓。
-
Go packages.Load 可加载显式 Go 文件集合,也可用 file= 查询所属包。本文说明两者的范围差异,给出文件列表封装,并解释 Mode、路径处理和两层错误。
-
Go x/text/encoding/charmap 的 EncodeRune 接收一个 rune,返回目标单字节编码中的 byte 和一个 bool。本文说明如何用 ok 判断字符能否编码,如何定位整段文本中的不可表示字符,以及何时改用 NewEncoder 或 UTF-8。
-
使用 golang.org/x/text/encoding/japanese 的 ISO2022JP 解码器读取带转义状态的日文字节流,覆盖一次性转换、流式读取、截断边界与重新编码。
-
Go 使用 golang.org/x/text/currency 的 Kind.Rounding 查询货币显示规则,理解 scale 与 increment 两个返回值,并据此区分标准、现金和会计场景的调用策略。
-
Go 处理土耳其语大写时,不要把语言规则简化为 ASCII 替换。使用 x/text/cases 的 Upper(language.Turkish),即可按土耳其语处理点号 I 和无点 I;本文同时说明 String、Bytes、流式转换和 Caser 并发边界。
-
Go collate.Numeric 可让名称中的连续数字按数值排序。本文给出记录排序代码,说明语言选项、相等项处理及分页范围,并区分自然数字排序与金额、版本号解析。
-
Go debug/dwarf.Reader 按 DWARF 树的前序顺序返回条目,遇到 Children=true 的父条目后可以调用 SkipChildren 跳过整棵子树。本文用 ELF/DWARF 读取示例说明调用位置、Tag=0 边界、常见误区和不可信输入限制。
-
介绍 Go opentype.ParseCollection 读取 TTC、OTC 及单字体文件的方法,说明字体索引选择、错误处理与底层数据寿命,并区分字体解析和绘制配置。
-
Go x/image/riff 用 NewReader 建立顶层 RIFF 读取器,再用 Reader.Next 逐块读取;遇到 LIST 时通过 NewListReader 递归打开子容器。本文说明 io.EOF、chunkData 生命周期、长度上限和错误处理的实际取舍。