简介

寒江蓑笠翁大约 5 分钟

简介

写下本文时,go的发行版已经来到了1.21,距离本站刚建立的时间也已经快有一年多了。标准库的内容一直没有更新是因为标准库的内容实在太多了,所以下面会简单的概括一些常用的标准库的作用,这样可以挑选自己感兴趣的去了解,每一个标准库的包级注释都会详细说明这个包是干什么用的。

  • fmt,用于处理格式化输入输出的包
  • html,html模板操作包
  • net,提供一系列网络操作的包,相当的强大
  • flag,命令行参数解析包
  • reflect,反射操作包
  • log,自带的日志包
  • sort,排序操作包
  • regex,正则表达式包
  • image,图像操作的包
  • time,时间操作的包
  • unicode,unicode字符集操作包
  • unsafe,提供没有类型限制的指针操作
  • syscall,操作系统提供的系统调用包
  • testing,测试包,主要是写测试的时候用。
  • sync ,并发操作包
  • context,上下文包
  • strconv,字符串转换包
  • strings,字符串操作包
  • bytes,字节切片操作包
  • maps,map操作包
  • slices,切片操作包
  • io,定义了一系列基础的IO接口,例如常用的CloserWriter等,还有一些基础的IO操作函数。
  • io/fs,定义了一系列文件系统的接口,算是对文件系统的抽象。
  • os,操作系统进行交互的包,提供的是一系列具体的函数,可以简单理解为是上面两个的具体实现。
  • os/signal,操作系统信号包,用于监听操作系统的信号,主要用于实现程序的优雅关闭。
  • os/exec,操作系统命令包,用于执行操作系统命令。
  • os/user,操作系统用户包,用于获取操作系统的用户信息。
  • bufio,有缓冲IO读写包。
  • path,处理斜杠分隔路径的包,例如url之类的。
  • path/filepath,处理文件路径的包。
  • math,数学操作包
  • math/bits,位运算操作包
  • math/cmplx,复数操作包,也提供了一些三角函数的工具函数。
  • math/rand,伪随机包
  • math/big,大数高精度计算包
  • container/heap,最小堆的实现
  • container/list,双线链表的实现
  • container/ring,环的实现
  • archive/zip,zip压缩归档的包
  • archive/tar,tar归档文件的包
  • compress,压缩算法实现的包,比如gzip,flate。
  • database/sql,与数据库进行交互的包
  • encoding,处理编码的包,其下有很多子包,比如jsonxml之类的,还有base64这种。
  • crypto,处理加密的包,其下有很多子包,比如sha1,rsa等
  • go/ast,go源代码抽象语法树映射的包
  • go/parser ,将go源代码解析成抽象语法树的包
  • go/importer,提供了对导入器的访问
  • go/format,go语言格式化包
  • areana,提供可手动分配和释放内存的功能,处于实验阶段
  • runtime,运行时操作包,go中有许多操作都是这个包实现的。