傻瓜式的go modules的讲解和代码

qq_42606051 · · 3342 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

国内关于gomod的文章,哪怕是使用了百度 -csdn,依然全是理论,虽然golang的使用者大多是大神但是也有像我这样的的弱鸡是不是?

所以,我就写个傻瓜式教程了。

github地址:https://github.com/247292980/go_moudules_demo

代码很少很简单。。。。

 

1.新建文件夹 go_moudules_demo

2.go mod之,生成go.mod文件

go mod init go_moudules_demo
语法
go mod init [module]

 

3.创建main.go,默认包名是gomod,需要改成main

4.创建正真的存放代码的文件夹 demo和文件gomod.go,注意不能与main放在同一文件夹下,因为会造成包名冲突

 

 5.根据规则引入代码,这里有个坑,因为goland做的不太好,实际上golang的所有工具都做的不太好,导致代码报红,但是实际上go build/run还是能跑通的

 

当然goland也可以配置,就是不知道怎么去红名。。。  

 

 三 总结

gomod最容易让人进了误区就是,把自己之前的代码都gomod一次,那么后面使用的时候直接根据gomod的package找之前的代码,简直美滋滋。

毕竟是go moudules但是,实际上只是go moudule,他只管一个项目里的多个包。

为什么造成这个误区呢?因为国内说的都是包管理,我还真以为是针对包的操作,然后第一次尝试失败后,翻了下官网

1

A module is a collection of related Go packages. <br>Modules are the unit of source code interchange and versioning.<br>The go command has direct support for working with modules, including recording and resolving dependencies on other modules.<br>Modules replace the old GOPATH-based approach to specifying which source files are used in a given build.

 a collection of related Go packages. 相关Go包的集合,这玩意的理解真的是难,什么相关,相关的是什么?这时候根据官网的usage代码反向理解下go mod init [module],显然是 module的相关Go包的集合,而module是一个单数啊。。。module和go mudules。。。我该如何理解啊。。。模板我倒是知道。。。总感觉这个怪不到谷歌头上,而且这玩意大家试个两下,就能找到正确理解也不算什么事。而且我要是把自己的代码都丢到github上同样不会报错,只是我是想着不丢到github上面的使用所以进了歪路。而且看后面的语法解析 go mod download 看起来就像是能实现我说的效果的,就是国内没什么材料,我只好一个一个翻英文,,,

而第二句Modules are the unit of source code interchange and versioning. Modules是源码的版本控制和交换的单位,也就说明go mod之间是独立的,,,不能互调,除非在gopath里面。感觉大神看到这句两下都不用试了。。。

四 语法解析

主要是一个人的博客 http://blog.51cto.com/qiangmzsx/2164520?source=dra

我把其中的关键抽出来,去掉他的代码,有兴趣的可以去原文看看

复制代码

    go mod init:初始化modules
    go mod download:下载modules到本地cache
    go mod edit:编辑go.mod文件,选项有-json、-require和-exclude,可以使用帮助go help mod edit
    go mod graph:以文本模式打印模块需求图
    go mod tidy:检查,删除错误或者不使用的modules,下载没download的package
    go mod vendor:生成vendor目录
    go mod verify:验证依赖是否正确
    go mod why:查找依赖

    go test    执行一下,自动导包

    go list -m  主模块的打印路径
    go list -m -f={{.Dir}}  print主模块的根目录
    go list -m all  查看当前的依赖和版本信息

复制代码

来源:https://www.cnblogs.com/ydymz/p/9788804.html

 

郑州男科医院

郑州男科医院哪家好

郑州哪个男科医院好

郑州哪家不孕不育医院好


有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:qq_42606051

查看原文:傻瓜式的go modules的讲解和代码

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3342 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传