★strings | strings包实现了用于操作字符的简单函数.
★text | scanner对utf-8文本的token扫描服务,tabwriter缩进修正
★unicode | unicode 包提供了一些测试Unicode码点属性的数据和函数.
三个都和string有关,放一块康一康:
string:
strings包实现了用于操作字符的简单函数:
- 分割,按空格分割
- 比较(模糊相等、包含、包含任意字符)
- 计数
- 索引(首次、末次)
- 替换,首尾Trim
- 格式化(全小写,全大写,首字母大写)
- 字符串连接,构造重复字符串
- 遍历
- 定义个一个strings.Read结构体,实现了io.Reader
text:
text包含三个子包:
scanner:scanner包提供了功能强大的
scanner.Scanner
对象以对utf-8文本的token进行扫描服务:
它会从一个io.Reader获取utf-8文本,通过对Scan方法的重复调用获取一个个token。为了兼容已有的工具,NUL字符不被接受。如果第一个字符是表示utf-8编码格式的BOM标记,会自动忽略该标记。
参见:https://studygolang.com/static/pkgdoc/pkg/text_scanner.htm-
tabwriter:tabwriter包实现了写入过滤器(tabwriter.Writer),可以将输入的缩进修正为正确的对齐文本. (可以把
\t
变成规整易读的样式
func NewWriter(output io.Writer, minwidth, tabwidth, padding int, padchar byte, flags uint) *Writer
将一个Writer封装好,并对其每次输输出进行过滤加空格,参数解释:- output:要封装的输出句柄
- minwidth:最小单元长度
- tabwidth:tab字符的宽度
- padding:单元格额外内边距
- padchar:用于填充的ASCII字符
- flags:格式化控制,用或运算符连接
参见:https://studygolang.com/static/pkgdoc/pkg/text_tabwriter.htm
- template:template包实现了数据驱动的用于生成文本输出的模板.
HTML生成类似于html/template但不安全。
模板语法参见:https://studygolang.com/static/pkgdoc/pkg/text_template.htm
unicode:
unicode包实现了用于操作和判别rune的一堆简单函数:
- 转码
- 格式化(全小写,全大写,首字母大写)
- 判别(是否大写,是否小写,是否数字,是否图画字符
- SimpleFold循环映射?即"a"->"A"->"a"
unicode包下面还包括utf-8和utf-16包,包内包含了编码解码还有一些判别函数