GO语言目录结构
2020-11-03 09:45:45 0 举报
AI智能生成
GO语言目录结构(golang)
作者其他创作
大纲/内容
<b>pkg目录</b><br><font color="#31a8e0">标准库</font>
<b>src目录</b><br><font color="#31a8e0">标准库源码</font>
<b>archive</b><br><font color="#31a8e0">归档文件处理库,可用来处理tar、zip类型文件</font>
<b>bufio</b><br><font color="#31a8e0">主要用于文本的读取写入,对io.Reader和io.Writer进行实现和封装</font>
<b>builtin</b><br><font color="#31a8e0">定义了常用的内置类型、函数、接口等,如make、new、len、error等</font>
<b>bytes</b><br><font color="#31a8e0">定义了操作字节的函数</font>
<b>cmd</b><br><font color="#31a8e0">Go语言基本工具</font>
<b>api</b><br><font color="#fdb813">用于生成API列表,也就是api目录下的go*.txt文件</font>
<b>asm</b><br><font color="#fdb813">汇编器,将源文件汇编为目标文件</font>
<b>buildid</b><br><font color="#fdb813">用于更新库或2进制文件中构建的标识</font>
<b>cgo</b><br><font color="#fdb813">支持创建调用C代码的包</font>
<b>compile</b><br><font color="#fdb813">编译工具</font>
<b>go</b><br><font color="#fdb813">管理源代码工具</font>
<b>godoc</b><br><font color="#fdb813">用于提取并生成Go程序文档</font>
<b>gofmt</b><br><font color="#fdb813">代码格式化工具</font>
<b>pack</b><br><font color="#fdb813">备份压缩工具</font>
<b>link</b><br><font color="#fdb813">连接器</font>
<b>vet</b><br><font color="#fdb813">代码静态检查工具</font>
<b>dist</b><br><font color="#fdb813">一个引导程序,负责构造Go语言的其他工具</font>
<b>fix</b><br><font color="#fdb813">用于找到使用旧API的程序,然后更新为新的API</font>
<b>cover</b><br><font color="#fdb813">分析单元测试覆盖率的工具</font>
<b>nm</b><br><font color="#fdb813">列出了由目标文件、归档文件、可执行文件定义或使用的符号</font>
<b>inernal</b><br><font color="#fdb813">一些内部通用实现,被其他包调用</font>
<b>test2json</b><br><font color="#fdb813">将Go测试程序的输出转的为机器可读的JSON流</font>
<b>pprof</b><br><font color="#fdb813">Go程序性能分析工具</font>
<b>trace</b><br><font color="#fdb813">用来跟踪分析goroutines运行调试状态等功能的工具,比pprof更加细粒度</font>
<b>compress</b><br><font color="#31a8e0">压缩、解压工具</font>
<b>container</b><br><font color="#31a8e0">提供了双向链表(list)、堆(heap)、环形联表(ring)的数据结构操作</font>
<b>context</b><br><font color="#31a8e0">封装了goroutine切换时的相关信息状态</font>
<b>crypto</b><br><font color="#31a8e0">封装了加密算法,如rsa、sha1、aes、md5等函数</font>
<b>database<br></b><font color="#31a8e0">数据库通用API,如SQLite、MySQL、Postgres</font>
<b>debug</b><br><font color="#31a8e0">支持Go程序调试</font>
<b>encoding</b><br><font color="#31a8e0">封装了各类编码的实现,如base64、json、xml、hex等</font>
<b>errors</b><br><font color="#31a8e0">错误函数,也可自定义</font>
<b>expvar</b><br><font color="#31a8e0">一系列标准接口,可通过HTTP方式将服务器变量以JSON格式打印出来</font>
<b>flag</b><br><font color="#31a8e0">解析处理命令行参数工具</font>
<b>fmt<br></b><font color="#31a8e0">封装了各种格式化输出方法</font>
<b>hash</b><br><font color="#31a8e0">封装了crc32、crc64在内的哈希函数</font>
<b>html</b><br><font color="#31a8e0">HTML模板引擎,可将代码与HTML混合,它会负责解析转义,类似python的jinja、php的smarty等</font>
<b>image</b><br><font color="#31a8e0">图形处理库</font>
<b>index</b><br><font color="#31a8e0">实现字符串高速匹配查找</font>
internal<br><font color="#31a8e0">控制包导入 权限,以internal命名的包,只允许它父级和父级的子级目录导入</font>
<b>io</b><br><font color="#31a8e0">文件I/O基本接口,bufio对它进行了实现</font>
<b>log</b><br><font color="#31a8e0">封装了日志记录方法,如log.Fatal、log.Print等</font>
<b>math</b><br><font color="#31a8e0">基本数学相关函数</font>
<b>mime</b><br><font color="#31a8e0">MIME类型的解析,MIME是媒体类型,如文档、文件、字节流性质的格式</font>
<b>net</b><br><font color="#31a8e0">封装了各种网络IO的函数,如TCP、UDP、Socket等</font>
<b>os</b><br><font color="#31a8e0">封装了用于操作操作系统的命令,如调用exec可执行shell脚本等</font>
<b>path</b><br><font color="#31a8e0">实现用于处理斜杠分隔符路径的函数</font>
<b>plugin</b><br><font color="#31a8e0">插件机制,可动态地加载动态链接库文件.so</font>
<b>reflect</b><br><font color="#31a8e0">封装了反射读取方法,如读取结构体的方法、属性</font>
<b>regexp<br></b><font color="#31a8e0">封装了正则表达式的实现</font>
<b>runtime</b><br><font color="#31a8e0">包含Go运行时的操作</font>
<b>sort</b><br><font color="#31a8e0">封装了部分排序算法</font>
<b>string</b><br><font color="#31a8e0">基础类型与字符串互相转换的方法</font>
<b>sync</b><br><font color="#31a8e0">封装了基本的同步机制,各种锁的实现</font>
<b>syscall</b><br><font color="#31a8e0">封装了一毓系统调用的接口</font>
<b>testing</b><br><font color="#31a8e0">为Go语言测试程序提供支持</font>
<b>text</b><br><font color="#31a8e0">封装了文本处理相关的方法,如文本扫描或文本标签过滤器等</font>
<b>time</b><br><font color="#31a8e0">封装了时间处理相关函数,如获取当前时间、计算时间差等</font>
<b>unicode</b><br><font color="#31a8e0">封装了utf8、utf16编解码的方法</font>
<b>unsafe</b><br><font color="#31a8e0">用于一些不安全的操作场景,如正常情况下,指向不同类型的指针是无法互相转换的,但可用unsafe的Pointer方法来实现</font>
<b>math</b><br><font color="#31a8e0">基本数学相关函数</font>
<b>test目录</b><br><font color="#31a8e0">单元测试程序</font>
<b>robots.txt</b><br><font color="#31a8e0">搜索引擎爬虫规则</font>
其它文件
<b>README</b><br><font color="#31a8e0">说明文件</font>
<b>except.txt</b><br><font color="#31a8e0">未来可能废弃的API</font>
<b>go*.txt</b><br><font color="#31a8e0">囊括了每个版本的API列表,文件内容只增不减,版本发布后归档</font>
<b>next.txt</b><br><font color="#31a8e0">未来版本可能实现的新功能</font>
<b>api目录</b><br><font color="#31a8e0">Go每个版本的API功能列表归档文件</font>
<b>bin目录</b><br><font color="#31a8e0">存入 go、gofmt、godoc</font>
<b>doc目录</b><br><font color="#31a8e0">html版标准web,可用godoc命令启动一个web服务</font>
<b>lib目录</b><br><font color="#31a8e0">文档模板</font>
<b>misc目录</b><br><font color="#31a8e0">输助类工具</font>
0 条评论
下一页