zoukankan      html  css  js  c++  java
  • 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.包名冲突

       

     

  • 相关阅读:
    php中的闭包和匿名函数
    php魔术常量
    SQL查询:存在一个表而不在另一个表中的数据
    php发送http请求的几种方式
    php高级工程师面试题
    php中include、require、include_once、require_once的区别
    gitignore规则基础
    Google地图数据算法
    【营销】包子和星座
    【GPS】 数据围栏
  • 原文地址:https://www.cnblogs.com/yxh168/p/12420644.html
Copyright © 2011-2022 走看看