Home gomod简介
Post
Cancel

gomod简介

gomod

gomod是go 1.1之后引入的一个模块化软件 本身go开发者的想法是希望将go的项目全部放入$GOPATH/src,同时下载的第三库也是放置于此,又因为在¥GOPATH/src下任何工程都可以互相导入,所以势必会引起冲突,引入gomod让我们可以在任何文件夹下运行go程序

比如python,下载的所有第三方库都都放在site-package,所以我们也可以$GOPATH/src作为第三方库的下载文件夹,然后使用gomod,在其他任意文件夹下创建go工程(有趣的是,如果在$GOPATH/src下的工程使用gomod还会报错),这是开发者有意而为之的,当然也可以通过额外设置允许它,但是吃力不讨好

极速入门:

1
2
3
4
5
6
7
~/test $
~/test $ go mod init haha
go: creating new go.mod: module haha
~/test $ cat go.mod
module haha

go 1.12

在test目录下使用go mod init <mod_name>新建go.mod文件,在此文件夹使用go env可以发现gomod被置为了~/test,然后go.mod只有一行module名称和go的版本号

go.mod不需要自己手动编写,在build或者run的使用会自动创建。使用ide或者vscode能在文件中使用import时就自动更新

同时在编译后还会产生一个go.sum文件,这个文件记录了所依赖项目的版本

This post is licensed under CC BY 4.0 by the author.

Docker的一些坑

How to create a map[string] [2]int in Go?