package
- 基本复用模块单元
- 以首字母大写来表明可以被包外代码访问
- 代码的package可以和所在的目录不一致
- 同一目录里的Go代码的package要保持一致
init
- 在main执行之前,所有依赖的package的init方法都会被执行
- 不同的包的init按照包倒入的依赖关系决定执行顺序
- 每个包可以有多个init函数
- 包的源文件也可以有多个init函数 – 特殊
使用三方远程的package
命令:
// -u 使用最新版
go get -u https://xxxxxxx/xxx.
完成之后如何使用?
和平时导包差不多:以concurrentMap为例
import cm "github.com/easierway/concurrent_map"
cm
表示别名
- 通过go get 命令来获取远程依赖
- go get -u 强制重远程更新依赖
- 我们提交的时候,注意github上的组织形式,适应go get——就是从代码路径开始,不要有src
依赖管理
go需要解决的依赖问题
- 同一环境下,不同项目使用包的统一版本
- 无法管理对包的特定版本依赖
vendor路径
go1.6 之前你需要手动设置环境变量,类似python的venv——vendor
依赖管理工具
- godep
- glide
- dep