Go 语言基础——package&依赖管理

依赖语法

/*
格式: import xxx/xxx/package值
注意根目录是src
*/

//方式一:
import testting

//方式二: 可以依赖多个包
import (
    "testing"
)

//方式三: 也可以给package起个别名,直接用别名调用包的函数
import (
    t "testing"
)

  1. go的package类似于Java中的类名称

  2. 以首字母大写来表明可被包外代码访问 (不在一个根目录的子目录下称为外包)

    src

    ​ -dirc1

    ​ - package name1

    ​ -dirc2

    ​ -package name2

    如果dirc1/package 值首字母小写,那么不能再dirc2目录下引用name1

  1. 代码的package可以和所在的目录不一致

  2. package 值和目录没有必然关系但同一目录里的Go代码的package要保持一致

依赖管理

通过go get来获取远程依赖,go get -u强制从网络更新远程依赖

示例: go get -u github.com/easierway/concurrent_map

如果要把代码放到GitHub上,不要把scr目录放到GitHub上,直接以代码路径开始,不要有src

vendor路径

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

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

1,当前包下的vendor目录

2,向上级目录查找,直到找到src下的vendor目录

3,在GOPATH下面查找依赖包4.在GOROOT目录下查找

go依赖管理的问题

1.同一环境下,不同项目使用同一包的不同版本

2,无法管理对包的特定版本的依赖(不能选择特定的版本)

常用的依赖管理工具

早期的: godep https://github.com/tools/godep

最常用的: glide https://aithub.com/Masterminds/qlide

最新的: dep https://github.com/golang/dep

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、Go的包设计理念 1.代码盒子 在Go程序中,包是代码模块组织的单位,为项目代码组织结构,提高代码的可读性、重...
    GoFuncChan阅读 3,508评论 0 0
  • vendor 在Go1.5 release的版本的发布vendor目录被添加到除了GOPATH和GOROOT之外的...
    _羊羽_阅读 9,422评论 0 2
  • 1 由于常年从事公共课教学,与我有过好几面之缘的学生日渐增多,于是出现了一个现实版的人脸识别问题。 一个人迎面向你...
    脱口岳阅读 3,602评论 0 0
  • 听着旁观者的亲戚诉说着我家里的事情,而我一起经历着但却仅知道一点皮毛,而对于背后的故事,我却毫无所知。我的内心真的...
    颜末小趣阅读 1,436评论 0 2
  • 效忠祖国遍全家, 绿叶如同在护花。 古往今来同一体, 钢心铁胆卫中华!
    追梦一侠阅读 2,383评论 0 4

友情链接更多精彩内容