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.包名冲突

       

     

  • 相关阅读:
    thymeleaf 模板使用 之 解决因HTML标签未闭合引起的错误
    Spring MVC 拦截器
    Spring boot data jpa 示例
    Hibernate 数据库方言
    Springboot 之 静态资源路径配置
    Java 时间不一致
    IntelliJ IDEA 2017.3.2 热加载(Hot Swap)
    IntelliJ IDEA Spring boot devtools 实现热部署
    Python-集合
    Python-文件读写及修改
  • 原文地址:https://www.cnblogs.com/yxh168/p/12420644.html
Copyright © 2011-2022 走看看