golang-构建可复用的模块

package

  1. 基本复用模块单元
  • 以首字母大写来表明可以被包外代码访问
  1. 代码的package可以和所在的目录不一致
  2. 同一目录里的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需要解决的依赖问题

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

vendor路径

go1.6 之前你需要手动设置环境变量,类似python的venv——vendor

依赖管理工具

  1. godep
  2. glide
  3. dep
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值