一、Golang项目目录文件结构组成
xxx.go含有package main和 func main()
其他包目录
go.mod
二、go mod 使用
2.1 创建项目目录
mkdir greetings
cd greetings
2.2 初始化go mod
$ go mod init example.com/greetings
go: creating new go.mod: module example.com/greetings
初始化后会生成一个go.mod文件。go mod init 后面跟的是模块名,若该项目需要上传至github用于他人模块下载使用,则需要加上代码仓库目录前缀。
只有使用了go mod之后才能使用go run .
运行当前项目,才能go get 别人的网上的模块,除非直接go install编译成二进制文件。
go mod出的模块名相当于当前目录的目录名,引入当前目录以及子目录的包时,根据模块名写路径即可,若目录名和包名不一致,则需要在目录前加上包名,用空格隔开。
三、go work 使用
go work的作用就是类似于GOPATH,go work use了哪些模块目录,它们就是相通的,import的时候就能直接"模块名/xxx"。
3.1 创建工作区目录
$ mkdir workspace
$ cd workspace
3.2 在工作区目录里创建项目
$ mkdir hello
$ cd hello
$ go mod init example.com/hello
go: creating new go.mod: module example.com/hello
在项目目录下可以直接用
go run .
运行main.main()也就是运行项目。
3.3 go work init初始化工作区
$ cd workspace
$ go work init ./hello
$ go run ./hello
初始化工作区后会生成一个go.work文件。然后就可以在工作区目录下直接
go run ./xxx
运行目录下的项目。
3.4 go work use将其他项目加入到当前工作区
$ go work use ./example/hello
#此时可在工作区运行go.work里的项目
$ go run ./example/hello