第十二天:golang学习笔记之strings, text, unicode

Macmillan_ · · 897 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

★strings | strings包实现了用于操作字符的简单函数.
★text | scanner对utf-8文本的token扫描服务,tabwriter缩进修正
★unicode | unicode 包提供了一些测试Unicode码点属性的数据和函数.

三个都和string有关,放一块康一康:

string:

strings包实现了用于操作字符的简单函数:

  • 分割,按空格分割
  • 比较(模糊相等、包含、包含任意字符)
  • 计数
  • 索引(首次、末次)
  • 替换,首尾Trim
  • 格式化(全小写,全大写,首字母大写)
  • 字符串连接,构造重复字符串
  • 遍历
  • 定义个一个strings.Read结构体,实现了io.Reader

text:

text包含三个子包:

  1. 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

  2. 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

  1. 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包,包内包含了编码解码还有一些判别函数

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:Macmillan_

查看原文:第十二天:golang学习笔记之strings, text, unicode

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

897 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传