一、Go 语言进阶与依赖管理
01语言进阶
-
Go可以充分发挥多核优势,高效运行
-
make(chan元素类型,[])
-
计数器:开启协程+1;执行结束-1;主协程阻塞直到计数器为0.
02依赖管理
1. 演进:GOPATH→Go Vendor→Go Module
不同环境(项目)依赖的版本不同
控制依赖库的版本
2. GOPATH
优点:项目代码直接依赖src下的代码
go get 下载最新版本的包到src目录下
弊端:无法实现package的多版本控制
3. Go Vendor
优点:通过每个项目引入一份依赖的副本,解决了多个项目需要同一个package依赖的冲突问题
弊端:无法控制依赖的版本。更新项目又可能出现依赖冲突,导致编译出错。
4. Go Module
通过go.mod文件管理依赖包版本
通过go get/go mod指令工具管理依赖包
5. 依赖管理三要素
a. 配置文件,描述依赖 go.mod
b. 中心仓库管理依赖库 Proxy
c. 本地工具 go get/mod