51.go modules依赖管理
- 简介
一般从GOPATH、vendor文件夹下寻找依赖包。使用该功能后根据go.mod文件中的记录下载依赖。
go.mod中使用//作为注释
module:定义当前模块和包路径
require:定义依赖的模块和版本
exclude:排除特定模块和版本的使用
replace:模块源的替换
使用 go get xxx会自动将依赖模块添加到go.mod文件中
网络访问不了golang.org/x等谷歌扩展包,可以使用replace
replace (
golang.org/x/crypto => github.com/golang/crypto latest
golang.org/x/sys => github.com/golang/sys latest
)
- go mod 命令:
go mod <命令> [可选参数]
初始化目录:go mod init
更新整理依赖:go mod tidy
更新无用模块、添加确实模块
将依赖复制到vender文件夹下:go mod vendor
验证模块是否正确:go mod verify
下载指定名称的模块到本地缓存中:go mod download
命令行编辑:go mod edit
解释为什么需要这个模块:go mod why
52.golang中使用json
序列化
支持:string、bool、数字类型、数组和切片、结构体、map
不支持:channel、complex、function类型,结构体中的循环数据结构
结构体中自定义字段名称
`json:"name,string"` 表示序列化时字段转换为name,类型为string
`json:"age,omitempty"`omitempty忽略空值,当为空值时不序列化
`json:"-"`始终忽略
- 使用标准库内建JSON包
Marshal:序列化为JSON
Unmarshal:JSON反序列化为结构体
有疑问加站长微信联系(非本文作者)