【Go语言】常用包

1、常用包

包名概述
fmt

格式化的I/O。其中fmt.Printf()和fmt.Println()使用最为频繁。

和C的printf和scanf类似,格式化短语派生于C。增加的:

%v —— 默认格式的值。当打印结构时,加号(%+v)会增加字段名

%#v —— Go样式的值表达

%T —— 带有类型的Go样式的值表达

io提供非平台相关的I/O接口(os中系统相关的IO进行封装)。流式读写(比如读写文件)时通常用到该包。
bufio在io基础上提供缓存功能(封装io.Reader和io.Writer,提供Reader和Writer)。具备缓存功能后,bufio可以比较方便地提供ReadLine之类的操作。
strconv提供字符串和基本数据类型互相转换。
os提供非平台相关的操作系统访问接口。接口为Unix风格,包括文件操作、进程管理、信号、用户账号等。

sync

提供基本的同步原语。如互斥锁,在多个goroutine访问共享资源时,需要使用该包提供的锁机制。
flag提供命令行参数的规则定义和传入参数解析的功能。一般命令行程序都需要用到该包。
encoding/json

提供对JSON的基本支持,如json序列化和反序列化。

net/http提供HTTP相关服务。http请求、响应和URL的解析;基本的http客户端和扩展的http服务。Web服务器用到。

2、完整包

目录

概述

 fmt实现了格式化输入输出
bufio实现缓冲的I/O
bytes提供对字节切片操作的函数
crypto提供加密函数
errors实现了操作错误的函数
Expvar为公共变量提供了一个标准的接口,如服务器中的运算计数器
flag实现了命令行标记解析
hash提供hash函数接口
html实现了一个html5兼容的分词器和解析器
image实现了一个基本的二维图像库
io提供对I/O原语的基本接口
log提供基本的日志功能
math提供基本的数学常量和基本函数
mine实现了部分MIME规范
net提供了一个对UNIX网络套接字的可移植接口,包括TCP/IP、UDP域名解析和UNIX域套接字
os平台无关的操作系统接口
path对斜线分割的文件名路径操作
reflect实现了运行时反射,允许一个程序以任意类型操作对象
regexp简单的正则表达式库
runtime包含与Go运行时库交互的操作,如控制goroutine的函数
sort对集合排序的基础函数集
strconv提供对字符串和基本数据类型的互相转换接口
strings操作字符串
sync提供了基本的同步机制
syscall包含一个低级的操作系统原语的接口
testing支持Go自动测试的包
time时间的测量和显示
unicodeUnicode编码相关的基础函数
archivetar对tar压缩文档的访问
zip对zip压缩文档的访问
compressbzip2实现了bzip2解压缩
flate实现了RFC 1951中所定义的DEFLATE压缩数据格式
gzip实现了RFC 1951中所定义的gzip格式压缩文件的读和写
lzw实现了Lempel-Ziv-Welch编码格式的压缩的数据格式
zlib实现了RFC 1950中所定义的zlib格式压缩数据的读和写
containerheap提供了实现heap.Interface接口的任何类型的堆操作
list实现了一个双链表
ring实现了一个循环链表
cryptoaes实现了AES加密(以前的Rijndael),详见美国联邦信息处理标准(197号文)
cipher实现了标准的密码块模式,该模式可包装进低级的块加密实现中
des实现了数据加密标准 (Data Encryption Standard, DES) 和三重数据加密算法 (TripleData Encryption Algorithm,TDEA),详见美国联邦信息处理标准(46-3号文)
dsa实现了FIPS 186-3所定义的数据签名算法(Digital Signature Algorithm)
ecdsa实现了FIPS 186-3所定义的椭圆曲线数据签名算法(Elliptic Curve Digital SignatureAlgorithm)
elliptic实现了素数域上几个标准的椭圆曲线
hmac实现了键控哈希消息身份验证码(Keyed-Hash Message Authentication Code,HMAC),详见美国联邦信息处理标准(198号文)
md5实现了RFC 1321中所定义的MD5哈希算法
rand实现了一个加密安全的伪随机数生成器
rc4实现了RC4加密,其定义见Bruce Schneier的应用密码学(Applied Cryptography)
rsa实现了PKCS#1中所定义的RSA加密
sha1实现了FIPS 180-2中所定义的SHA224和SHA256哈希算法
sha256实现了FIPS 180-2中所定义的SHA224和SHA256哈希算法
sha512实现了FIPS 180-2中所定义的SHA384和SHA512哈希算法
subtle实现了一些有用的加密函数,但需要仔细考虑以便正确应用它们
tls部分实现了RFC 4346所定义的TLS 1.1协议
x509可解析X.509编码的键值和证书
x509/pkix包含用于对X.509证书、CRL和OCSP的ASN.1解析和序列化的共享的、低级的结构
databasesql围绕SQL提供了一个通用的接口 
sql/driver定义了数据库驱动所需实现的接口,同sql包的使用方式
debugdwarf提供了对从可执行文件加载的DWARF调试信息的访问,这个包对于实现Go语言的调试器非常有价值
elf实现了对ELF对象文件的访问。ELF是一种常见的二进制可执行文件和共享库的
文件格式。Linux采用了ELF格式
gosym访问Go语言二进制程序中的调试信息。对于可视化调试很有价值
macho

实现了对http://developer.apple.com/mac/library/documentation/DeveloperTools/Conceptual/MachORuntime/

Reference/reference.html 所定义的Mach-O对象文件的访问

pe实现了对PE(Microsoft Windows Portable Executable)文件的访问
encodingascii85实现了ascii85数据编码,用于btoa工具和Adobe’s PostScript以及PDF文档格式
asn1实现了解析DER编码的ASN.1数据结构,其定义见ITU-T Rec X.690
base32实现了RFC 4648中所定义的base32编码
base64实现了RFC 4648中所定义的base64编码
binary实现了在无符号整数值和字节串之间的转化,以及对固定尺寸值的读和写
csv可读和写由逗号分割的数值(csv)文件
gob管理gob流——在编码器(发送者)和解码器(接收者)之间进行二进制值交换
hex实现了十六进制的编码和解码
json实现了定义于RFC 4627中的JSON对象的编码和解码
pem实现了PEM(Privacy Enhanced Mail)数据编码
xml实现了一个简单的可理解XML名字空间的XML 1.0解析器
goast声明了用于展示Go包中的语法树类型
build提供了构建Go包的工具
doc从一个Go AST(抽象语法树)中提取源代码文档
parser实现了一个Go源文件解析器
printer实现了对AST(抽象语法树)的打印
scanner实现了一个Go源代码文本的扫描器
token定义了代表Go编程语言中词法标记以及基本操作标记(printing、predicates)的常量
hashadler32实现了Adler-32校验和
crc32实现了32位的循环冗余校验或CRC-32校验和
crc64实现了64位的循环冗余校验或CRC-64校验和
fnv实现了Glenn Fowler、Landon Curt Noll和Phong Vo所创建的FNV-1和FNV-1a未加密哈希函数
htmltemplate它自动构建HTML输出,并可防止代码注入
imagecolor实现了一个基本的颜色库
draw 提供一些做图函数
gif实现了一个GIF图像解码器
jpeg  实现了一个JPEG图像解码器和编码器
png实现了一个PNG图像解码器和编码器
indexsuffixarray通过构建内存索引实现的高速字符串匹配查找算法
ioioutil实现了一些实用的I/O函数
logsyslog提供了对系统日志服务的简单接口
mathbig实现了多精度的算术运算(大数)
cmplx 为复数提供了基本的常量和数学函数
rand 实现了伪随机数生成器
mimemultipart实现了在RFC 2046中定义的MIME多个部分的解析
nethttp提供了HTTP客户端和服务器的实现
mail实现了对邮件消息的解析
rpc提供了对一个来自网络或其他I/O连接的对象可导出的方法的访问
smtp实现了定义于RFC 5321中的简单邮件传输协议(Simple Mail Transfer Protocol)
textproto实现了在HTTP、NNTP和SMTP中基于文本的通用的请求/响应协议
url解析URL并实现查询转义
http/cgi实现了定义于RFC 3875中的CGI(通用网关接口)
http/fcgi实现了FastCGI协议
http/httptest提供了一些HTTP测试应用
http/httputil提供了一些HTTP应用函数,这些是对net/http包中的东西的补充,只不过相对不太常用
http/pprof通过其HTTP服务器运行时提供性能测试数据,该数据的格式正是pprof可视化工具需要的
rpc/jsonrpc为rpc包实现了一个JSON-RPC ClientCodec和ServerCodec
osexec执行外部命令
user通过名称和id进行用户账户检查
pathfilepath实现了以与目标操作系统定义文件路径相兼容的方式处理文件名路径
regexpsyntax 将正则表达式解析为语法树
runtimedebug 包含当程序在运行时调试其自身的功能
pprof以pprof可视化工具需要的格式写运行时性能测试数据
syncatomic 提供了低级的用于实现同步算法的原子级的内存机制
testingiotest提供一系列测试目的的类型,实现了Reader和Writer标准接口
quick 实现了用于黑箱测试的实用函数
script帮助测试使用通道的代码
textscanner 为UTF-8文本提供了一个扫描器和分词器
tabwriter实现了一个写筛选器(tabwriter.Writer),它可将一个输入的tab分割的列翻译为适当对齐的文本
template数据驱动的模板引擎,用于生成类似HTML的文本输出格式
template/parse为template构建解析树
unicode/utf16实现了UTF-16序列的的编码和解码
unicode/utf8实现了支持以UTF-8编码的文本的函数和常数

 

参考:《Go语言编程》、《学习Go语言(Golang)》

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值