2.3 处理字符
Go 支持 UTF-8, 意味着可以使用任意 UTF-8 编码的字符为变量命名,而负责从连续字节流中处理字符的逻辑在source.go
中,主要的结构体是:
其中重要的函数有两个:
nextch
用来读取下一个字符,参见源代码可以发现其依赖unicode/utf8
,以便从 buf 中读取下一个 UTF-8 编码的字符;fill
用来更新缓存 buf。任何时候 source 都保存着最新的字符读取状态,所以 nextch 不会返回字符,而是改变 source 的内部字段,获取当前字符直接访问属性source.ch
就可以了。
我们通过 UT 来测试一下该模块的逻辑:在相同目录下创建source_test.go
文件,并创建如下方法:
运行该方法,可以发现每个中文字符都得到了合理的解析:
97,98,99,100,101,65,66,67,68,69,32,20013,25991,26469,20102,8220,32,95,
最后更新于