Go学习总结——包依赖管理

1、package

  • 基本复用模块单元,以首字母大写来表明可被包外代码访问
  • 代码的package可以和所在目录不一致
  • 同一目录里的Go代码的package要保持一致,取名不能错误

2、init方法

  • 在main被执行前,所有依赖的package的init方法都会被执行
  • 不同包的init函数按照包导入的依赖关系决定执行顺序,Go语言可以自动处理这种依赖关系
  • 每个包可以有多个init函数
  • 包的每个源文件也可以有多个init函数,这点比较特殊

3、远程包使用注意事项

  • 通过go get来获取远程依赖,go get -u 强制从网络更新远程依赖
  • 注意代码在Github上的组织形式,以适应go get,直接以代码路径开始,不要有src

4、Go未解决的依赖问题

  • 同一环境下,不同项目使用同一包的不同版本
  • 无法管理对包的特定版本依赖

5、Go解决依赖的扩展方法——vendor
随着Go 1.5 release版本的发布,vendor目录被添加到除了GOPATH和GOROOT之外的依赖目录查找的解决方案。在Go 1.6之前,你需要手动的设置环境变量

查找依赖包路径的解决方案如下:

  • 当前包下的vendor目录
  • 向上级目录查找,直到找到src下的vendor目录
  • 在GOPATH下面查找依赖包
  • 在GPROOT目录下查找
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值