Go依赖包的管理

package介绍

   1.基本复用模块单元
      以首字母大写来表明可以被包外代码访问 小写字母开头的将不能被包外访问
   2.代码的package可以和所在的目录不一致
   3.同一个目录中的Go的代码的package要保持一致

   init方法
     1.在main被执行前,所有依赖的package的init方法都会被执行
     2.不同包的init函数按照包导入的依赖关系决定执行顺序
     3.每个包可以有多个init函数
     4.包的每个源文件也可以有多个init函数,这点比较特殊

   远程package

      go get -u -u 表示每次都从远程服务器拉取最新版本的包而不使用本地缓存的包

  vendor路径
      vendor目录被添加到除了GOPATH和GOROOT之外的依赖目录查找。解决了不同项目各自依赖不同版本的问题

package查找流程

     1.当前包下的vendor目录
     2.逐级向上级目录查找vendor目录,直到src目录下的vendor目录
     3.在GOPATH目录下查找依赖包
     4.在GOROOT目录下查找依赖包

 

包导入语法  

   import 导入的是包目录(path),不是包
   包是 package packname
   src下面的所有目录都称为包目录
   所有导入的包路径在后面必须被引用

匿名包
     没有名字的包
    import _ "fmt" 调用包里面的初始化函数
    在go源码文件中定义init()函数 当此go文件被导入的时候会自动执行init函数。一个函数返回多个值 如果调用函数的时候不需要某个返回值 就可以用_来取代接收变量
别名包用途

   1.包名太长
   2.包名冲突

   

 

原文地址:https://www.cnblogs.com/yxh168/p/12420644.html