-
Go x/text/search 的 IgnoreCase 不是简单把两边字符串转成小写,而是保留原文并按语言规则完成大小写不敏感匹配。本文从一个小型搜索工具出发,说明它与 ToLower、Loose、Exact 的区别。
-
Go x/text/runes 处理的是 UTF-8 文本中的 rune,不是可以直接按字节下标切开的字符。本文从 Remove、Map、If 和 transform.String 的关系出发,说明字节索引、分块读取与非法 UTF-8 的边界。
-
Go x/text/number 的 Scale 和 IncrementString 只改变数字的格式化结果,不会回写原始变量。本文用对照示例说明显示舍入、业务计算和输出边界应该怎样分开。
-
Go x/text/message 在缺少翻译时会格式化原文或备用文案。本文用独立目录示例说明 message.Key、目录绑定和语言选择,并比较原文键与稳定消息标识的维护方式。
-
Go x/text/language.Parse 解析的是 BCP 47 语言标签,不是任意文本清洗器。本文区分格式错误、未知值和部分解析结果,说明 Parse、Make、MustParse 与 ParseAcceptLanguage 的选择边界。
-
解释 Go x/text/encoding/unicode/utf32 中 ExpectBOM 与 IgnoreBOM 的解码、编码差异,给出缺失 BOM、字节序和 U+FEFF 输出的处理方法。
-
Go x/text/encoding/unicode 的 UseBOM 会在 UTF-16 输入带起始 BOM 时覆盖默认字节序,无 BOM 时再回退到默认值。本文用示例区分 UseBOM、ExpectBOM 和 IgnoreBOM。
-
Go x/net/http2/hpack.Decoder 的输入是压缩后的 HPACK 头部块,解压后的名称和值可能更长。本文说明 SetMaxStringLength 的限制对象、ErrStringLength 的处理方式,以及增量 Write 与 Close 的生命周期边界。
-
Go EffectiveTLDPlusOne 需要公共后缀左侧再有一个标签。本文解释后缀本身被拒绝的原因,给出区分结果与错误的代码,并说明归并记录与规则快照的保存方式。
-
Go 使用 x/text/encoding/korean 解码 EUC-KR 分块数据时,Transform 返回的 nSrc 与 ErrShortSrc 决定了哪些字节必须带到下一块。本文结合 Decoder.Reader 和手动分块处理说明如何避免字符被截断。
-
Go x/net/idna.ToASCII 不是简单的字符串转小写,而是原始 Punycode 编码入口。本文区分 ToASCII、Lookup.ToASCII 与 Registration.ToASCII 的用途,说明域名查找映射和注册校验应该怎样选择。
-
Go x/text/collate 的 KeyFromString 返回切片指向可复用 Buffer。本文说明 Reset 后旧排序键为什么不能继续依赖,以及批量排序、长期缓存和直接比较时的正确取舍。
-
Go charmap 的 DecodeByte 面向 8-bit 单字节字符集,逐个 byte 查表即可;本文说明它与 NewDecoder、多字节编码和 UTF-8 处理的边界。
-
Go x/text/currency 的货币展示受币种、语言地区和符号选项影响。本文给出固定币种的对照代码,区分 Default 与 FromTag,并说明存储和缓存应如何保留币种身份。
-
Go x/text/cases 的 Caser 可能带状态,不能因为它是值类型就直接在 goroutine 间共享。本文说明 Lower、Upper、Title、Fold 的并发边界,以及 String、Bytes、Transform 的选择。