不同的go 版本导包方式各不相同:
:::info
go(老版本):导包会根据配置的环境变量goroot 或 gopath,在其路径下的src文件夹下去查找,同时要求go的project需要在gopath的src文件夹下创建,十分不灵活。
go(新版本):可以使用go mod init (module)来生成go.mod文件,来完成灵活导包。
:::
举个example:
- 首先,需要检查是否开启 go mod模式,GO111MODULE=on,就可以使用go语言自带的mod来管理自己开发的项目的依赖,从而可以摆脱传统的必须把依赖的模块放在GOROOT或者GOPATH下的src,pkg等目录下的方式。
- 可以通过调用cmd窗口,键入go env命令来检查
(值得注意的是,新版本的go默认开启go mod模式)
- 接下来,在VScode上创建一个项目,项目名称为MyDemo。此项目下有两个Module,分别为moduleA和moduleB。我们可以在项目的顶层文件夹的”根路径“下使用如下命令,可以将此项目视为一个巨大的package,用一个go.mod进行管理:
go mod init MyDemo
- 项目结构中的文件代码如下:
package main
import (
"MyDemo/moduleB"
"fmt"
)
func main() {
moduleB.New()
fmt.Println("main")
}
package moduleB
import "fmt"
func New() {
fmt.Println("moduleB.New")
}
- 运行测试:打开集成终端.
键入go run ./main.go
可见,运行成功!