介绍Golang尝使用的库函数。
介绍
- bytes
- bufio,可以对 os.File、io.Reader 等进行操作
- crypto:加解密相关工具包,如 md5/sha1/sha256/sha512/hmac
- encoding:编解码,如 base64/json
- errors
var (
ErrInvalidParam = errors.New("invalid param")
)
if err != nil && err == ErrInvalidParam {
//...
}
// 判断带参数的 error
if errors.Is(err, ErrInvalidParam) {
//..
}
// `errors.Unwrap` 用来将错误中将原错误解析出来,`fmt.Errorf` 包装的 `error` 使用 `%w` 格式化
err := fmt.Errorf("origin error: %w", errxxx)
err = errors.Unwrap(err)
fmt.Printf("origin error: %+v\n", err)
- flag:命令行获取参数
- path
- log:日志模块
log.SetPrefix("gseo: ")
log.SetFlags(log.Flags | log.Llongfile) // 设置日志格式
log.Panicf("%s", "x") // panic 日志,之后退出
log.Fatalf("%s", "x") // fatal 日志,之后 os.Exit(1)
- net
- net.Conn 也实现了 io.Reader 和 io.Writer
- io
- os
- runtime
- sort
- strcov
- strings,下面的两个工具对内存数据操作:
- sync
- testing
- time:时间相关工具,
time.Sleep(time.Second * 3)
- golang.org/x/time/rate 限速器
- utf8
binary
: uint64
转换 byte
大端字节序列化/小端字节序列化
i := int64(-123456789)
fmt.Println(i)
b := make([]byte, 8)
binary.LittleEndian.PutUint64(b, uint64(i))
fmt.Println(b)
i = int64(binary.LittleEndian.Uint64(b))
fmt.Println(i)
第三方库